C# LINQ中不区分大小写的字符串匹配,其中
我正在做一件事,需要捕获字符串的第一个字符。如果以S或S开头,则返回 我考虑的伪代码是: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
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表达式中看到它