CRM中通过QueryExpression查询出了一个EntityCollection集,但有时会存在重复数据,QueryExpression中有个属性distinct,只要设置为true就能过滤重复数据,但这个属性针对的数据重复是所有的列都相同。但现在讨论的重复数据不是多条数据的所有列都一样,而是当某个字段或者多个字段的数据重复时我们就认为这是一条重复数据,那怎么样才能去掉这种情况下的重复呢?
EntityCollection.Entities.GroupBy(item => item.GetAttributeValue<string>("new_name")).Select(item => item.First());
通过上述代码将实体集按照“new_name”进行分组,而后再取每一组的第一行数据,这样就做到了distinct。当然这边只是分享这么个思路,我的例子有一定的背景局限性(我的查询数据中只要是new_name相同,其他的自定义属性字段值也是相同的,所以我取new_name的重复性即可),实际过程中你可以按照这个思路去发散。