我有一个看起来像这样的文本文件,我在每个“|”处拆分。 在第三个'|'之间是我需要分成两个单独的列的两个词。拆分时遇到问题。
Nbr| Address| Name |Phone|City|State|Zip
455 |gsgdgsg |fir last|434 |jk |jh |0393
我有这样的东西,它正在进行拆分并将输出写入列表。目前我可以很好地进行拆分并选择第一部分,但是当我进行拆分并选择第二部分时,我得到索引超出数组错误的边界。
var Names = File
.ReadAllLines(path)
.Select(a => a.Split(new[] { '|' }, StringSplitOptions.None))
.Select(a => new {
phoneNbr = a[0].Trim(),
Name = a[2].Trim().Split(' ')[0],
Name2 = a[2].Trim().Split(' ')[1], //gives me error I think becuase it already split it
addr = a[1].Trim()
})
.ToList();
最佳答案
在某些记录中,索引 2 的第三列中可能没有两个词。在使用第二个元素之前,您需要确保拆分后得到两个元素。
改变
Name2 = a[2].Trim().Split(' ')[1]
给
Name2 = a[2].Trim().Split(' ').Length > 1 ? a[2].Trim().Split(' ')[1] : ""
关于c# - 使用 LINQ 将值一分为二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083413/