读取文本文件并写入列表

时间:2012-12-27 16:57:04

标签: c# linq parsing split

他们可以同时在多个地方拆分文本文件并保存到列表中吗?

我能够在一个地方进行拆分并写入如下列表:

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并再次拆分并执行四次。

1 个答案:

答案 0 :(得分: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