0

我有一个字符串数组,我必须只取那些以“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?

4

1 回答 1

8

您需要使用Where()

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

TakeWhile将采取序列直到条件变为假,但Where 将继续并找到与条件匹配的所有元素。

于 2015-02-22T17:14:51.707 回答