从c#中的列表中删除重复项

Sha*_*ggy 4 c# linq

我有类的类列表

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

public List<MyClass> myClassObject;
Run Code Online (Sandbox Code Playgroud)

示例值:

BillId = "123",classObj = {},
BillId = "999",classObj = {},
BillId = "777",classObj = {},
BillId = "123",classObj = {}
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中,我们有重复的值BillId.我想删除所有重复值(不区分),因此结果只包含999&777value.

实现这一目标的一种方法

  • 遍历所有项目
  • 得到独特的数量 BillId
  • 如果count大于1,则将其存储BillId在另一个变量中
  • 再次循环并基于删除项目 BillId

有没有直接的方法来实现这一目标?

mac*_*ura 12

我认为这会奏效:

var result = myClassObject.GroupBy(x => x.BillId)
    .Where(x => x.Count() == 1)
    .Select(x => x.First());
Run Code Online (Sandbox Code Playgroud)

在这里小提琴