我需要写一些能给出与以下相同结果的东西:
var result = collection.Where( o => o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 )
要检查的字符串的数量和值(some_string_1、2 和 3)未知(来自 DB),所以更通用的东西...
我尝试了以下,但失败了......
var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList();
var result = collection.Where( o => stringsToCheck.Contains( o.ToLower() ) );
换句话说,我需要从一个集合中检索名称包含一些特定字符串的所有对象。
最佳答案
var result = collection.Where(item => stringsToCheck.Any(stringToCheck =>
item.Name.Contains(stringToCheck)));
用英文阅读是这样的:给我集合中的所有项目,其中所有字符串中检查其中一个是集合中字符串的子字符串。
关于c# - LinQ WHERE string.Contains 或 string.IndexOf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346961/