SequenceEqual用于特定属性

时间:2011-11-08 23:34:44

标签: c#

我想比较两个对象列表。这些对象有四种不同的属性。我只需将它们中的三个作为序列进行比较(只有三个因为一个总是不同)。

一个例子如下:

list1 = new List<myClass>() { new myClass(10, "a", 100, "unique1"),
    new myClass(10, "a", 100, "unique2") };

list2 = new List<myClass>() { new myClass(10, "a", 100, "unique3"),
    new myClass(10, "a", 100, "unique4") };

我可以将这些列表比作没有第四(唯一)属性的序列吗?预期的结果将是正确的。

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您可以使用SequenceEqual重载,该重载允许您传入仅包含您要比较的属性的IEqualityComparer<T>实现。

linked page上的示例很好。

答案 1 :(得分:2)

您可以使用Enumerable.SequenceEqual重载来指定自定义IEqualityComparer - 实现一个仅比较您感兴趣的三个属性的自定义。