当前位置: 首页 > 编程语言 > C#

在N个列表中查找公共对象分享

时间:2023-04-10 23:11:15 C#

在N个列表中查找公共对象我有N个“人”的列表。人们有2个属性:Id和Name。我想找到包含在所有N个列表中的人。我只想匹配Id。这是我的出发点:Listresult=newList();//我想我只需要在第一个列表中找到其他列表中的项目foreach(PeoplepersoninpeoplesList.First()){//然后这是遍历其他完整列表的开始peoplesList.Skip(1)){//我什至需要这个吗?}}我一直在尝试将标头包裹在中间部分。我只想要peoplesList.Skip(1)中每个列表中的peoplesList.Skip(1)。从数学上讲;您正在寻找所有列表之间的交集。幸运的是,LINQ有一个Instersect方法,所以你可以迭代地交叉你的集合。列表列表;//用你的数据初始化IEnumerablecommonPeople=lists.First();foreach(Listsinlists.Skip(1)){commonPeople=commonPeople.Intersect(list);}//commonPeople现在是一个包含所有列表交集的IEnumerable要使“ID”选择器起作用,您需要为People实施IEqualityComparerIEqualityComparercomparer=newPeopleComparer();...commonPeople=commonPeople.Intersect(list,comparer);IEqualityComparer的实际实现被省略了,因为它非常简单。以上就是C#学习教程:在N个列表中查找所有公共对象共享的内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: