C# LINQ中不区分大小写的字符串匹配,其中

C# LINQ中不区分大小写的字符串匹配,其中,c#,lambda,C#,Lambda,我正在做一件事,需要捕获字符串的第一个字符。如果以S或S开头,则返回 我考虑的伪代码是: var foodsWithS = Foods.Where(food => food.Name[0] == 'S' || food.Name[0] == "s").Select(i => i.Name); 不幸的是,这失败了。最好的方法是什么?目前我有两个lambda来检查每一个字母的大小写。foods.Where(x=>x.StartsWith(“S”,StringComparison.Ord

我正在做一件事,需要捕获字符串的第一个字符。如果以S或S开头,则返回

我考虑的伪代码是:

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

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

foods.Where(x=>x.StartsWith(“S”,StringComparison.OrdinalIgnoreCase))
食品。其中(x=>x.StartsWith(“S”,StringComparison.OrdinalIgnoreCase))

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

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

如果您使用的是字符串对象的集合,还可以使用StartsWith

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

^特别是您的伪代码非常接近,但正如@Jace的回答所指出的,
StartsWith
是实现这一点的正确方法(假设您使用的是LINQ to Objects)。正确。非常相似。。。但是很高兴在LAMBDA表达式中看到它,尤其是伪代码,但正如@Jace的回答所指出的,
StartsWith
是正确的方法(假设您使用的是LINQ to Objects)。正确。非常相似。。。但很高兴在LAMBDA表达式中看到它