遍历具有设置的列号(3)但长度可变的文本文档

时间:2018-09-20 21:21:40

标签: c#

嗨,我想知道循环此txt文档的最佳方法 并将行提取为单独数组中的单独值

 ItemType1  ItemType2  ItemType3\n
 1.0000009  KKKiiiNNG  ItemTypeC\n
 1.7777777  SNJLJXSSS  ItemTypeC\n
 2.0000000  MMNNXXGGG  ItemTypeC\n
 ...can have more or less line

希望有道理... 谢谢

1 个答案:

答案 0 :(得分:1)

您可以尝试使用File.ReadLines来读取每个行词,并使用string.Split函数将行词按空格分隔。该文档显示,传递null会分割空格字符:

  

如果分隔符参数为null或不包含任何字符,则假定空格字符为分隔符。空格字符由Unicode标准定义,如果将它们传递给Char.IsWhiteSpace方法,则返回true。

由于ReadLines,每行将单词返回到字符串数组。

[0] = 1.0000009  KKKiiiNNG  ItemTypeC
[1] = 7777777  SNJLJXSSS  ItemTypeC
....

下一步,我们可以使用lambda select来获取结果,而不是进行循环

  

选择集合并转换集合中的元素。可以重载以获得元素索引,选择并舍入数组中的每个数字。

var result = File.ReadLines("your file path")
                             .Select(x=>x.Split(null))
                             .Select(z=> new {
                                 ItemType1 = z[0],
                                 ItemType2 = z[1],
                                 ItemType3 = z[2]
                             });

这里是有关linq and labdma tutorial

的链接