我有一组数据,其中包含一个名为Approvals的集合。 Approvals对象具有属性调用ApplicationName。我想要一份所有Distinct Approvals ApplicationNames的列表。因此,如果我有一份批准名单,其中包含Nick,Nick,Jack,Daniel的应用名称,我想返回Nick,Jack,Daniel的整个审批对象。或者至少只是名单Nick,Jack,Daniel
这对我不起作用..
theApplicationNames = theData.Approvals.Select(c => new WebsiteApplicationInfo
{
Name=c.ApplicationName,
ID=c.ApplicationId
}).Distinct().ToList();
答案 0 :(得分:1)
如果您需要不同名称的列表,请使用
var names = theData.Approvals.Select(a => a.ApplicationName).Distinct();
这将导致所有名称的列表(可能是字符串?)。
您的版本“无效”的一个可能原因是您在.Distinct()
个对象的集合上使用WebsiteApplicationInfo
,这些对象可能没有实现正确的相等比较。但是,如果不知道“不工作”是什么意思,我们就无法确定。
答案 1 :(得分:1)
theData.Approvals.Select(a => a.ApplicationName).Distinct();
答案 2 :(得分:0)
如果你投射一个属性,你就可以区分它。如果要投射匿名类型,则需要使用GroupBy技巧或创建传递给Distinct的自定义IComparer。您应该能够使用以下搜索找到相当多的解决方案:https://stackoverflow.com/search?q=distinctby&submit=search