2

我有一个数据集合,其中有一个名为 Approvals 的集合。Approvals 对象有一个属性调用 ApplicationName。我想要一个所有 Distinct Approvals ApplicationNames 的列表。因此,如果我有一个包含 Nick、Nick、Jack、Daniel 的 applicationNames 的 Approvals 列表,我想返回 Nick、Jack、Daniel 的整个批准对象。或者至少只是尼克、杰克、丹尼尔的名字列表

这对我不起作用..

theApplicationNames = theData.Approvals.Select(c => new WebsiteApplicationInfo 
                                                    {
                                                        Name=c.ApplicationName,
                                                        ID=c.ApplicationId
                                                    }).Distinct().ToList();
4

3 回答 3

1

如果你想要一个不同名称的列表,你会使用

var names = theData.Approvals.Select(a => a.ApplicationName).Distinct();

这将导致所有名称的列表(可能是字符串?)。

您的版本对您“不起作用”的一个可能原因是您正在使用对象.Distinct()集合WebsiteApplicationInfo,这些对象可能没有实现正确的相等比较。但是,如果不知道您所说的“不起作用”是什么意思,我们无法确定。

于 2012-08-28T19:13:03.063 回答
1
theData.Approvals.Select(a => a.ApplicationName).Distinct();
于 2012-08-28T19:13:24.597 回答
0

如果你投射一个单一的属性,你可以区分它。如果要投影匿名类型,则需要使用 GroupBy 技巧或创建自定义 IComparer 并将其传递给 Distinct。您应该能够使用以下搜索找到相当多的解决方案:https ://stackoverflow.com/search?q=distinctby&submit=search

于 2012-08-28T19:24:50.427 回答