首页 > 解决方案 > 循环通过设置列号(3)但长度可变的文本文档

问题描述

嗨,我想知道循环这个 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

希望这是有道理的...谢谢

标签: c#

解决方案


您可以尝试使用File.ReadLines读取每一行单词并使用string.Split函数将行单词拆分为空格。该文档显示null在空白字符上传递拆分:

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

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

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

下一步我们可以使用 lambdaselect来获取结果而不是 for 循环

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

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 和 labdma 教程的链接


推荐阅读