【问题标题】:C# subarray of strings with LINQ带有 LINQ 的 C# 字符串子数组
【发布时间】:2015-04-24 00:07:34
【问题描述】:

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

【问题讨论】:

    标签: c# string linq startswith sub-array


    【解决方案1】:

    你需要使用Where():

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

    TakeWhile 将执行序列直到条件变为 false,但 Where 将继续查找所有符合条件的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2017-10-10
      相关资源
      最近更新 更多