Fre*_*eud 0 c# linq string 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();
Run Code Online (Sandbox Code Playgroud)
但这只是行不通.它返回一个空字符串数组.
当我使用for循环遍历行并每次进行比较时
if (!firstline.Substring(0, 2).StartsWith("81")) continue;
Run Code Online (Sandbox Code Playgroud)
然后我拿了所需的条目,它工作得很好.
有任何建议如何使用LINQ正确吗?
你需要使用Where():
lines = lines.Where(item => item.StartsWith("81") || item.StartsWith("82")).ToArray();
Run Code Online (Sandbox Code Playgroud)
TakeWhile将采取序列直到条件变为假,但Where 将继续并找到符合条件的所有元素.