Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# 使两个不同对象的所有列表相交的最快、最简单的方法 公共类信息 { 公共列表项目{get;set;} 公共列表学校{get;set;} 公共列表位置{get;set;} 公共列表兴趣{get;set;} 公共列表爱好{get;set;} }_C#_.net - Fatal编程技术网

C# 使两个不同对象的所有列表相交的最快、最简单的方法 公共类信息 { 公共列表项目{get;set;} 公共列表学校{get;set;} 公共列表位置{get;set;} 公共列表兴趣{get;set;} 公共列表爱好{get;set;} }

C# 使两个不同对象的所有列表相交的最快、最简单的方法 公共类信息 { 公共列表项目{get;set;} 公共列表学校{get;set;} 公共列表位置{get;set;} 公共列表兴趣{get;set;} 公共列表爱好{get;set;} },c#,.net,C#,.net,要使两个列表相交,只需执行以下操作:list1.Select(a=>a.Projects.intersect(list2.Select(b=>b.Projects)) 但是,如果您想要第三个具有公共字符串的对象,比如说前两个对象,该怎么办呢?我能想到的最简单的解决方案是级联交集: public class Info { public List<string> Projects { get; set; } public List<string> School

要使两个列表相交,只需执行以下操作:
list1.Select(a=>a.Projects.intersect(list2.Select(b=>b.Projects))


但是,如果您想要第三个具有公共字符串的对象,比如说前两个对象,该怎么办呢?

我能想到的最简单的解决方案是
级联交集

public class Info
{
    public List<string> Projects { get; set; }
    public List<string> Schools { get; set; }
    public List<string> Locations { get; set; }
    public List<string> Interests { get; set; }
    public List<string> Hobbies { get; set; }
}

当您从第一个列表移动到最后一个列表时,是什么阻止您继续执行相交操作,您将得到最终解决方案
ProjectList.Intersect(学校列表).Intersect(位置列表).Intersect(兴趣列表).Intersect(HobbyList)
@MrinalKamboj没有什么可以阻止我,但我想也许有了onliner它可以做到?这难道不是一个吗liner@MrinalKamboj,嗯,是的,不是这样看的:)看msdn样品:
var result = Projects.Intersect(Schools)
                     .Intersect(Locations)
                     .In‌​tersect(Interests​)
                     .Intersect(Hobbies)
                     .ToList();