我有类型类别的 list

public class MyClass
{
    public SomeOtherClass classObj;
    public string BillId;
}

public List<MyClass> myClassObject;

样本值:
BillId = "123",classObj = {},
BillId = "999",classObj = {},
BillId = "777",classObj = {},
BillId = "123",classObj = {}

因此,在上面的示例中,我们为BillId设置了重复的值。我想删除所有重复的值(不重复),因此结果将仅包含999777值。

实现此目的的一种方法是
  • 遍历所有项目
  • 获取唯一的BillId的数量
  • 如果count大于1,则将该BillId存储在另一个变量
  • 再次循环并根据BillId删除项目

  • 有没有简单的方法可以实现这一目标?

    最佳答案

    我认为这可以工作:

    var result = myClassObject.GroupBy(x => x.BillId)
        .Where(x => x.Count() == 1)
        .Select(x => x.First());
    

    fiddle here

    09-07 00:50