Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 就像在实体框架中比较列表一样_C#_Entity Framework - Fatal编程技术网

C# 就像在实体框架中比较列表一样

C# 就像在实体框架中比较列表一样,c#,entity-framework,C#,Entity Framework,我有一张这样的名单: “约翰” “艾伦” 还有一张有各种名字的人的名单 我可以在我的人员表中搜索与我的列表匹配的任何姓名,如下所示: people = people.Where(x => names.Contains(x.Name)); 但是,这将执行精确匹配。如何修改查询,以便能够对名称列表中的项目执行类似的搜索 也就是说,我希望我的原始姓名列表能够在people表中找到姓名如下的人 “约翰·史密斯” “鲍勃·阿兰森” 等等。你可以使用任何你已经知道如何使用的和包含的 var name

我有一张这样的名单:

“约翰” “艾伦”

还有一张有各种名字的人的名单

我可以在我的人员表中搜索与我的列表匹配的任何姓名,如下所示:

people = people.Where(x => names.Contains(x.Name));
但是,这将执行精确匹配。如何修改查询,以便能够对名称列表中的项目执行类似的搜索

也就是说,我希望我的原始姓名列表能够在people表中找到姓名如下的人

“约翰·史密斯” “鲍勃·阿兰森”


等等。

你可以使用任何你已经知道如何使用的
包含的

var names = new List<string>() { "John", "Alan" };
var people = new List<string>() { "John Smith", "Bob Alanson" };
var result = people.Where(x => names.Any(y => x.Contains(y))).ToList();

您可以使用
Any
string.Contains

people = people.Where(x => names.Any(n => x.Name.Contains(n)));

您可以使用以下查询:

people = people.Where(x => names.Like(x.Name, "%key%"));

使用包含类似(%pattern%)。一些“汤姆·约翰逊”将被选为结果收集。我更喜欢使用StartsWith(它实现了Like(pattern%))进行名称过滤。

我不知道
列表的
Like
方法
people = people.Where(x => names.Like(x.Name, "%key%"));