Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF linq/lambda.contains(列表[字符串])?_C#_Linq_Entity Framework_Entity Framework 5 - Fatal编程技术网

C# EF linq/lambda.contains(列表[字符串])?

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) )

是否有任何方法可以计算字符串是否包含列表的某些元素或列表的所有元素?使用linq创建实体

我一直在尝试使用predicateBuilder和其他工具,但我对这些工具并没有100%的兴趣

编辑

比如:

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