【问题标题】:Case-insensitive string matching in LINQ Where [duplicate]LINQ 中不区分大小写的字符串匹配 Where [重复]
【发布时间】:2016-07-16 00:34:09
【问题描述】:

我正在做一些需要我捕捉字符串的第一个字符的事情。如果它以 S 或 s 开头,则返回。

我考虑的伪代码是:

var foodsWithS = Foods.Where(food => food.Name[0] == 'S' || food.Name[0] == "s").Select(i => i.Name);

不幸的是,这失败了。最好的方法是什么?目前我有两个 lambdas 来检查每个字母的大小写。

【问题讨论】:

  • ^ 特别是the second answer
  • 您的伪代码很接近,但正如@Jace 的回答所指出的那样,StartsWith 是执行此操作的正确方法(假设您使用的是 LINQ-to-Objects)。
  • 真。非常相似......但很高兴在 LAMBDA 表达式中看到它

标签: c# lambda


【解决方案1】:

foods.Where(x => x.StartsWith("S", StringComparison.OrdinalIgnoreCase));

【讨论】:

    【解决方案2】:

    如果你使用的是字符串对象的集合,你也可以使用 StartsWith;

    food.StartsWith("s", StringComparison.OrdinalIgnoreCase);
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2017-12-09
      • 2018-04-28
      • 2013-05-03
      • 2014-10-26
      • 1970-01-01
      • 2012-12-03
      • 2015-03-17
      • 1970-01-01
      相关资源
      最近更新 更多