我正在通过两个参数进行分组,然后基于创建日期(使用first())选择子组列表中最新的类型来过滤列表。 这将消除x.application和x.externalid属性上的重复。
var list = ((List<SomeType>)xDic)
.GroupBy(x => new {x.Application, x.ExternalID})
.OrderByDescending(z => z.First().CreateDate)
.Select(y => y.First()).ToList();
我遇到的问题是需要定义另一个属性组合(x.application和x.externaldisplayid)进行过滤并按第一个分组。
总结一下,我需要通过过滤掉基于((x.application/x.externalid) OR (x.application/x.externaldisplayid))组合的任何重复项来获取SomeTypes的唯一列表。
Example set:
{ "extID": 1234, "extDspID" : 111, "App" : "Test", "CreateDate": 2/01/2015}
{ "extID": 1234, "extDspID" : 5, "App" : "Test", "CreateDate": 1/01/2015}
{ "extID": 012, "extDspID" : 90, "App" : "Mono", "CreateDate": 6/06/2015}
{ "extID": 999, "extDspID" : 78, "App" : "Epic", "CreateDate": 8/08/2015}
{ "extID": 333, "extDspID" : 78, "App" : "Epic", "CreateDate": 8/12/2015}
{ "extID": 345, "extDspID" : 33, "App" : "Test", "CreateDate": 2/01/2015}
{ "extID": 666, "extDspID" : 33, "App" : "Test", "CreateDate": 1/01/2015}
desired result:
{ "extID": 1234, "extDspID" : 111, "App" : "Test", "CreateDate": 2/01/2015}
{ "extID": 012, "extDspID" : 90, "App" : "Mono", "CreateDate": 6/06/2015}
{ "extID": 333, "extDspID" : 78, "App" : "Epic", "CreateDate": 8/12/2015}
{ "extID": 345, "extDspID" : 33, "App" : "Test", "CreateDate": 2/01/2015}
((x.application/x.externalid) OR (x.application/x.externaldisplayid))
组合的确切含义吗? - Yacoub Massad