EF linq / lambda .contains(list [String])?

时间:2013-05-29 14:35:48

标签: c# linq entity-framework entity-framework-5

有没有办法评估字符串是否包含列表的某些元素或列表的所有元素?使用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();

2 个答案:

答案 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();