2

Approvalsというコレクションを含むデータのコレクションがあります。Approvalsオブジェクトには、ApplicationNameというプロパティがあります。すべてのDistinctApprovalsApplicationNamesのリストが必要です。したがって、applyNamesがNick、Nick、Jack、Danielの承認のリストがある場合は、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();

これにより、すべての名前(おそらく文字列?)のリストが作成されます。

バージョンが「機能しない」理由の1つは、オブジェクト.Distinct()のコレクションで使用しているためですWebsiteApplicationInfo。オブジェクトのコレクションでは、正しい等価比較が実装されていない可能性があります。しかし、「機能していない」とはどういう意味かわからなければ、確信が持てません。

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

単一のプロパティを投影する場合は、それを区別することができます。匿名タイプを投影する場合は、GroupByトリックを使用するか、Distinctに渡すカスタムIComparerを作成する必要があります。次の検索を使用して、かなりの数の解決策を見つけることができるはずです:https ://stackoverflow.com/search?q=distinctby&submit=search

于 2012-08-28T19:24:50.427 に答える