1

プロパティによっていくつかの重複があるオブジェクトのリストがあります。条件に基づいて、すべての非重複と重複の 1 つを取得したいと思います。

たとえば。

リスト:

  1. コード:1、グレード:10
  2. コード:1、グレード:20
  3. コード:2、グレード:1

期待されるリスト:

  1. コード:1、グレード:20
  2. コード:2、グレード:1

条件は、重複した要素の条件であり、最も高いものを取得しGradeます。これを行うには、ラムダ式または linq 式をどのように記述しますか?

4

3 に答える 3

5

これを行うために使用できますGroupBy

var results = items.GroupBy(item => item.Code)
                   .Select(g => g.OrderByDescending(i => i.Grade)
                   .First());
于 2012-07-11T20:01:51.880 に答える
0

GroupBy最初にCodeプロパティを選択してMaxから、グループ内の各要素の を選択することをお勧めします

于 2012-07-11T20:02:14.353 に答える
0

何かのようなもの

list.GroupBy(item=>item.Code).Select(item=>new {code = item.Key, grade = item.Max(i=>i.Grade)}).ToList();
于 2012-07-11T20:04:34.110 に答える