C# 检查所有项之间共享的公共属性值 ListMainList 主列表[项目1、项目2、项目3、项目4] Item1.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item2.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item3.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item4.Product[{name=A,etc},{name=B,etc},{name=C,etc}] A、 B,C指一个名为“Name”的属性值 产品是产品项的列表

C# 检查所有项之间共享的公共属性值 ListMainList 主列表[项目1、项目2、项目3、项目4] Item1.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item2.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item3.Product[{name=A,etc},{name=B,etc},{name=C,etc}] Item4.Product[{name=A,etc},{name=B,etc},{name=C,etc}] A、 B,C指一个名为“Name”的属性值 产品是产品项的列表,c#,.net,c#-6.0,C#,.net,C# 6.0,我想知道一种识别主列表中每个列表项的Name属性是否100%相等的方法。 这意味着A、B、C在主列表中所有项的name属性中共享 你们能帮我用c#?解决这个问题吗?因为你们的代码示例是伪代码,所以我不得不猜测实际的实现。我希望我保留了你介绍的结构的精髓 如果是这样,下面使用Zip和SequenceEqual来解决您的问题。Zip允许比较连续的ProductCategory对象,SequenceEqual用于比较两个ProductCategory对象之间的产品列表 void Main() { 变量

我想知道一种识别主列表中每个列表项的Name属性是否100%相等的方法。 这意味着A、B、C在主列表中所有项的name属性中共享


你们能帮我用c#?

解决这个问题吗?因为你们的代码示例是伪代码,所以我不得不猜测实际的实现。我希望我保留了你介绍的结构的精髓

如果是这样,下面使用Zip和SequenceEqual来解决您的问题。Zip允许比较连续的ProductCategory对象,SequenceEqual用于比较两个ProductCategory对象之间的产品列表

void Main()
{
变量目录=
新名单
{
新产品类别{Title=“1”,产品=新列表{新产品{Name=“A”},新产品{Name=“B”},新产品{Name=“C”},},
新产品类别{Title=“2”,产品=新列表{新产品{Name=“A”},新产品{Name=“B”},新产品{Name=“C”},},
新产品类别{Title=“3”,产品=新列表{新产品{Name=“A”},新产品{Name=“B”},新产品{Name=“C”},},
新产品类别{Title=“4”,产品=新列表{新产品{Name=“A”},新产品{Name=“B”},新产品{Name=“C”},},
};
var allEqual=目录
.Skip(1)
.Zip(目录,(x,y)=>x.Products.SequenceEqual(y.Products,new ProductComparer())
.全部(c=>c);
WriteLine($“这等于:{allEqual}”);
}
公共类ProductCategory
{
公共字符串标题{get;set;}
公共列表产品{get;set;}
}
公共类产品
{
公共字符串名称{get;set;}
}
公共类产品比较程序:IEqualityComparer
{
公共布尔等于(乘积x,乘积y)
{
if(Object.ReferenceEquals(x,y))
{
返回true;
}
if(Object.ReferenceEquals(x,null)| | Object.ReferenceEquals(y,null))
{
返回false;
}
返回x.Name==y.Name;
}
public int GetHashCode(产品)
{
if(Object.ReferenceEquals(product,null))
{
返回0;
}
int-hashProductName=product.Name==null?0:product.Name.GetHashCode();
返回hashProductName;
}
}

您能否提供一个我们可以用来更好地理解问题的方法,而不是使用伪代码?您所说的100%等于是什么意思?是否要对
名称
属性中具有相同值的对象进行分组?所有对象都具有相同的名称
MainList.All(x=>x.Name==MainList[0].Name)
标题中是否缺少一些标点符号。(此列表中充满的“项目列表100%相似”是什么?)?你需要校对标题和正文。列表是否比MainList大,或者它是否继承自,或者…,什么是前-,…你应该见见我的朋友。
List<List<Products>>MainList 

    MainList[Item1, Item2, Item3, Item4]

    Item1.Product[{name= A, etc}, {name= B, etc}, {name= C, etc}]
    Item2.Product[{name= A, etc}, {name= B, etc}, {name= C, etc}]
    Item3.Product[{name= A, etc}, {name= B, etc}, {name= C, etc}]
    Item4.Product[{name= A, etc}, {name= B, etc}, {name= C, etc}]