有没有办法评估字符串是否包含列表的某些元素或列表的所有元素?使用linq实体?
我一直在尝试使用谓词构建器和其他人,但我不是%100进入thoses。
修改
类似的东西:
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();
答案 0 :(得分:13)
您需要撤销对Contains
的使用,以检查words
的{{1}}集合:
fullName
这将匹配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();
数组中的一个项。
要匹配用户words
中所有的words
,请使用fullName
:
All
答案 1 :(得分:0)
最好使用intersect
IEnumerable<string> first = ...;
IEnumerable<string> second= ...;
var duplicates = first.Intersect(second);
且不包含
bool contains = duplicates.Any();