我有以下情况:
我有一个可以循环任何次数的循环。在该循环中,我调用一个返回List<CustomClass>
的方法。在运行循环之后,我需要能够比较每个列表中的所有List<CustomClass>
项,并查看哪些项在所有项之间是通用的。他们。为了做到这一点,我试图将所有List<CustomClass>
放入另一个列表中:List<List<CustomClass>
然后我需要使用所有这些来查看所有这些列表中存在的public class CustomClass
{
public string name;
}
public List<CustomClass> SomeMethod()
{
List<List<CustomClass>> bigList = new List<List<CustomClass>>();
List<CustomClass> finalList = new List<CustomClass>();
for (int i=0;i<=5;i++)
{
List<List<CustomClass>> newList = GetNewList();
bigList.Add(newList);
}
//I now need to compare everything in bigList and create a new list with all common
//items in the list of bigList.
return finalList ;
}
public List<CustomClass> GetNewList()
{
List<CustomClass> newList = new List<CustomClass>();
for (int i=0;i<=5;i++)
{
CustomClass newClass = new CustomClass();
newClass.name = "some name";
newList.Add(newClass);
}
return newList;
{
。我将比较我的CustomClass的一个属性(字符串名称)
这是我到目前为止所拥有的
List<List<CustomClass>>
我希望这是有道理的。对此有任何帮助非常感谢。
由于
修改
例如在List<CustomClass>
中,每个{{1}}包含一个名称设置为“Pete”的CustomClass,然后我想创建一个名称设置为“Pete”的CustomClass并将其添加到最终列表中。
答案 0 :(得分:4)
查看所有这些之间的共同点
使用Intersect
扩展名方法:
var common = list1.Intersect(list2);
请注意,为此,您应该:
Equals
GetHashCode
和CustomClass
CustomClass
实施IEquatable<CustomClass>
Intersect
提供实施IEqualityComparer<CustomClass>