带有LINQ的C#字符串子阵列

时间:2015-02-22 17:14:15

标签: c# string linq startswith sub-array

我有一个字符串数组,我只需要那些条目 以“81”或“82”开头。我试过这样的话:

var lines = File.ReadAllLines(fileName); // This returns an array of strings
lines = lines.TakeWhile(item => item.StartsWith("81") ||item.StartsWith("82")).ToArray();

但这不起作用。它返回一个空字符串数组。

当我使用for循环遍历行并且每次都进行比较时

if (!firstline.Substring(0, 2).StartsWith("81")) continue;

然后我拿了所需的条目,它工作得很好。

有关如何使用LINQ正确使用的任何建议吗?

1 个答案:

答案 0 :(得分:8)

您需要使用Where()

lines = lines.Where(item => item.StartsWith("81") || item.StartsWith("82")).ToArray();

TakeWhile将采用序列直到条件变为false,但Where将继续并找到符合条件的所有元素。