我有类型列表
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
的重复值。我想删除所有重复值(不区分),因此结果只包含999
&amp; 777
值。
达到此目的的一种方法
BillId
BillId
存储在另一个变量中BillId
有没有直接的方法来实现这个目标?
答案 0 :(得分:12)
我认为这样可行:
var result = myClassObject.GroupBy(x => x.BillId)
.Where(x => x.Count() == 1)
.Select(x => x.First());
小提琴here
答案 1 :(得分:3)
你也可以这样做,
var result = myClassObject.GroupBy(x => x.BillId)
.Where(x => !x.Skip(1).Any())
.Select(x => x.First());
答案 2 :(得分:1)
这可能有所帮助。
var result = myClassObject
.GroupBy(x => x.BillId)
.Where(x => x.Count()==1)
.Select(x => x.FirstOrDefault());
答案 3 :(得分:0)
试试这个。
var distinctList = myClassObject.GroupBy(m => m.BillId)
.Where(x => x.Count() == 1)
.SelectMany(x => x.ToList())
.ToList();
答案 4 :(得分:0)
.Where(x => x.Count()==1)
对我不好。
您可以尝试:
.GroupBy(x => x.codeLigne).Select(x => x.First()).ToList()