首页 > 解决方案 > 当两个列表的特定属性小于其他属性时,为 ALL 返回 TRUE

问题描述

它很难解释,所以我在这里做了一个简化的数据样本:

我这里有 2 个不同复杂类型的列表:

清单 1:

{ Id = 1 , Value = 1 }; {Id = 2 ,  Value = 2 }; { Id = 3 , Value = 1.5}

清单2

{ Id = 1 , Value = 1 }; {Id = 2 ,  Value = 2 }; { Id = 3 , Value = 1.5}

两个列表的比较应该返回 TRUE,因为 Value 属性的每个值在两个列表中都是相等的。

如果只有一个 Value 属性值不同,则整个结果必须为 FALSE。

我怎么能用 linq 来做到这一点?

标签: c#linq

解决方案


试试这个,使用 LINQ 的Zip方法:

var result = list1.Zip(list2, (l1, l2) => l1.Value == l2.Value).All(x => x);

推荐阅读