C# 在设置了列号(3)但长度可变的文本文档中循环

C# 在设置了列号(3)但长度可变的文本文档中循环,c#,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 希望它有意义。。。 谢谢您可以尝试使用File.ReadLines读取每行单

嗨,我想知道循环这个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
希望它有意义。。。
谢谢

您可以尝试使用
File.ReadLines
读取每行单词,并使用函数按空格分割每行单词。文档显示传递
null
会拆分空白字符:

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

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

[0] = 1.0000009  KKKiiiNNG  ItemTypeC
[1] = 7777777  SNJLJXSSS  ItemTypeC
....
下一步,我们可以使用lambda
select
来获得循环的结果

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


这是一个关于

您期望的结果是什么?它们是选项卡还是列之间的空格?ItemType1-是开始时间,ItemType2-停止时间,ItemType3-word。所有单词之间的空格(只有3列宽)我可以读取txt文件并查看数据-但我被困在循环中(超级新手>@StackBuddy我的例子是使用linq to而不是循环。你想使用循环版本吗?@D-ShihI认为你的答案很好,也许可以解释一下linq是如何工作的(它与循环有多相似).OP是新的,因此他们需要一些详细信息explanation@maccettura好的,等一下,我会写更多的解释Lambda表达式很有趣…!我现在正在使用它,虽然我会继续看它,但我需要一段时间来理解它。
var result = File.ReadLines("your file path")
                             .Select(x=>x.Split(null))
                             .Select(z=> new {
                                 ItemType1 = z[0],
                                 ItemType2 = z[1],
                                 ItemType3 = z[2]
                             });