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)
.Intersect(Interests)
.Intersect(Hobbies)
.ToList();