给定一个具有以下定义的类:

public class MyTestClass
{
    public int ValueA { get; set; }
    public int ValueB { get; set; }
}

如何在MyTestClass []数组中找到重复的值?

例如,
MyTestClass[] items = new MyTestClass[3];
items[0] = new MyTestClass { ValueA = 1, ValueB = 1 };
items[1] = new MyTestClass { ValueA = 0, ValueB = 1 };
items[2] = new MyTestClass { ValueA = 1, ValueB = 1 };

包含重复项,因为有两个MyTestClass对象,其中ValueA ValueB都等于1

最佳答案

您可以通过按ValueA和ValueB对元素进行分组来查找重复项。
之后对它们进行计数,您将发现哪些重复项。

这是您隔离二重奏的方法:

var duplicates = items.GroupBy(i => new {i.ValueA, i.ValueB})
  .Where(g => g.Count() > 1)
  .Select(g => g.Key);

关于c# - 使用LINQ查找多个属性中的重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5596604/

10-13 08:30