1

他们是一种将文本文件一次拆分到多个位置并保存到列表的方法吗?

我能够在一个地方进行拆分并写入这样的列表:

var incomplete = File
            .ReadAllLines(path)
            .Select(a => a.Split(new[] { '|' }, StringSplitOptions.None)[5].Trim())
            .ToList();

我想分成四个位置,然后写入一个列表。

var mnbrs = File
            .ReadAllLines(path)
            .Select(a => a.Split('|')[2].Trim())
            .Select(b => b.Split('|')[5].Trim())
            .Select(c => c.Split('|')[6].Trim())
            .Select(d => d.Split('|')[11].Trim())
            .ToList();

这给了我错误索引超出了数组的范围。

任何帮助表示赞赏。我也可以以不同的方式拆分和阅读文件。我只是想避免读取文件拆分一次然后列出然后读取 agian 并再次拆分并执行四次。

4

1 回答 1

6

您想分两步完成。首先拆分,然后选择各个列:

File
    .ReadAllLines(path)
    .Select(a => a.Split(new[] { '|' }, StringSplitOptions.None))
    .Select(a => new {
        Column1 = a[2].Trim(),
        Column2 = a[5].Trim(),
        Column3 = a[6].Trim(),
        Column4 = a[11].Trim()
    })
    .ToList();

演示:http: //ideone.com/aNyNT5

于 2012-12-27T17:00:11.853 回答