通过指定的方法C#比较两个自定义对象列表

我只是安德鲁

我知道以前曾问过具有相同标题的问题,但这是我的情况:

我想比较两个不覆盖Equals也不实现的自定义对象列表,IEqualityComparer但是我想将它们与静态比较方法进行比较,例如:

public class Custom
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
}

public static bool Compare(Custom A, Custom B)
{
    return A.Prop1 == B.Prop1 && A.Prop2 == B.Prop2;
}

假设列表中的元素顺序相同:

List<Custom> l1 = new List<Custom> {new Custom { Prop1 = "A", Prop2 = "B"}, new Custom { Prop1 = "A", Prop2 = "B" } };
List<Custom> l2 = new List<Custom> { new Custom { Prop1 = "A", Prop2 = "B" }, new Custom { Prop1 = "A", Prop2 = "b" } };

我试图避免这样的:

if(l1.Count != l2.Count)return;
for (int i = 0; i < l1.Count; i++)
{
    if(!Compare(l1[i], l2[i]))return;
}
bool comparisonResult = true;

使用linq,但我想我缺少了一些东西:

bool comparisonResult = l1.Any(x => l2.Any(y => Compare(x, y)));

这是尝试过的方法,但是true当列表不相同时,它会不断返回

阿万尼克

如果您必须使用LINQ并且不想实现IEqualityComparerfor Custom...

假设两个列表的顺序正确,则可以利用Zip并排创建每个对象的新列表,有点像Tuple然后,您可以在该新列表上调用All来调用您的静态Compare方法:

  List<Custom> l1 = new List<Custom> {new Custom { Prop1 = "A", Prop2 = "B"}, new Custom { Prop1 = "A", Prop2 = "B" } };
  List<Custom> l2 = new List<Custom> { new Custom { Prop1 = "A", Prop2 = "B" }, new Custom { Prop1 = "A", Prop2 = "b" } };

  bool comparisonResult = l1.Zip(l2, (x, y) => new { x, y }).All(z => Compare(z.x, z.y));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较两个自定义列表python

来自分类Dev

比较两个自定义LIST对象

来自分类Dev

使用自定义比较器功能压缩两个列表的标准方法

来自分类Dev

使用自定义比较器功能压缩两个列表的标准方法

来自分类Dev

C#比较对象列表的两个列表

来自分类Dev

自定义对象之间的C#列表比较

来自分类Dev

在C#中通过LINQ比较两个列表?

来自分类Dev

如何在 C# 中合并两个自定义类型列表

来自分类Dev

比较两个NSArray的自定义对象并列出这些数组的不同对象的更好方法

来自分类Dev

断言以比较两个对象C#列表

来自分类Dev

比较两个对象C#的列表计数

来自分类Dev

我将如何比较自定义树集实现中的两个对象?

来自分类Dev

我将如何比较自定义树集实现中的两个对象?

来自分类Dev

使用自定义规则比较两个哈希

来自分类Dev

jQuery验证插件-比较两个选择下拉菜单的自定义方法

来自分类Dev

如何基于两个自定义对象删除列表中的重复项

来自分类Dev

从两个自定义对象列表中删除公共元素

来自分类Dev

比较两个列表中的用户定义对象

来自分类Dev

python两个列表映射自定义

来自分类Dev

合并两个自定义对象类型的ArrayList

来自分类Dev

合并两个自定义对象类型的ArrayList

来自分类Dev

如何在C#中比较两个对象列表?

来自分类Dev

给定两个对象列表,如何与C#中的新KV比较?

来自分类Dev

如何使用自定义比较器比较两个数组列表的相等性?

来自分类Dev

C#通过一个属性比较两个列表并更改第一个列表的值

来自分类Dev

如何在C#中比较两个列表?

来自分类Dev

C#比较两个强类型列表

来自分类Dev

c#比较两个列表/表

来自分类Dev

C# 比较两个列表 (FileData)

Related 相关文章

热门标签

归档