我有一个字符串数组,我只需要那些条目 以“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正确使用的任何建议吗?
答案 0 :(得分:8)
您需要使用Where()
:
lines = lines.Where(item => item.StartsWith("81") || item.StartsWith("82")).ToArray();
TakeWhile
将采用序列直到条件变为false,但Where
将继续并找到符合条件的所有元素。