Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有LINQ的字符串的C子数组_C#_String_Linq_Startswith_Sub Array - Fatal编程技术网

C# 具有LINQ的字符串的C子数组

C# 具有LINQ的字符串的C子数组,c#,string,linq,startswith,sub-array,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循环遍历行并每次比较时 i

我有一个字符串数组,我必须只取那些条目 从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做对吗

您需要在以下位置使用:

TakeWhile将执行序列,直到条件变为false,但Where将继续并查找与条件匹配的所有元素

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