C# EF linq/lambda.contains(列表[字符串])?
是否有任何方法可以计算字符串是否包含列表的某些元素或列表的所有元素?使用linq创建实体 我一直在尝试使用predicateBuilder和其他工具,但我对这些工具并没有100%的兴趣 编辑 比如:C# EF linq/lambda.contains(列表[字符串])?,c#,linq,entity-framework,entity-framework-5,C#,Linq,Entity Framework,Entity Framework 5,是否有任何方法可以计算字符串是否包含列表的某些元素或列表的所有元素?使用linq创建实体 我一直在尝试使用predicateBuilder和其他工具,但我对这些工具并没有100%的兴趣 编辑 比如: string[] words = searchString.Split(' '); var resultado = db.users .Where(u => u.fullName.contains(words) )
string[] words = searchString.Split(' ');
var resultado = db.users
.Where(u => u.fullName.contains(words) )
.Select(s => new { user_id = s.id_user, nombre = s.fullName})
.ToList();
您需要反向使用
Contains
来检查全名的单词
集合:
string[] words = searchString.Split(' ');
var resultado = db.users
.Where(u => words.Contains(u.fullName))
.Select(s => new { user_id = s.id_user, nombre = s.fullName})
.ToList();
这将匹配单词数组中的一个项
要匹配用户的全名中单词的all,请使用all
:
var resultado = db.users
.Where(u => words.All(w => u.fullName.Contains(w))
.Select(s => new { user_id = s.id_user, nombre = s.fullName})
.ToList();
最好是和我一起做
答案是:是的。也许是更精确的问题?是的,您可以使用contains方法来执行此操作。contains可以将列表作为参数吗?是否按顺序匹配所有内容?类似于在searchString=“bigat”
时匹配比尔·盖茨,但在searchString=“Gat Bi”
时不匹配比尔·盖茨
IEnumerable<string> first = ...;
IEnumerable<string> second= ...;
var duplicates = first.Intersect(second);
bool contains = duplicates.Any();