使用 LINQ 的 C# 字符串子数组
C# subarray of strings with LINQ
我有一个字符串数组,我必须只取那些条目,
以“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 的任何建议?
您需要使用Where()
:
lines = lines.Where(item => item.StartsWith("81") || item.StartsWith("82")).ToArray();
TakeWhile
将进行排序,直到条件变为假,但 Where
将继续并找到与条件匹配的所有元素。
我有一个字符串数组,我必须只取那些条目, 以“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 的任何建议?
您需要使用Where()
:
lines = lines.Where(item => item.StartsWith("81") || item.StartsWith("82")).ToArray();
TakeWhile
将进行排序,直到条件变为假,但 Where
将继续并找到与条件匹配的所有元素。