-1

1 か月前、私は次の質問をしました: Trying to find the top 3 properties of a POCO instance . 答えを得て、うまくいきました。

今、私は POCO オブジェクトの上位 3 つのプロパティを見つけようとしています (前の質問のように) が、各プロパティにはWEIGHTがあります。プロパティの値が最初に来ます。次に重みが続きます... 2 つ以上のプロパティが同じ値を持つ場合。

例の出発点として、前の質問のデータを拡張してみましょう:-

重量の数値が低いほど良い。1 == 最高。10が最悪です。各重量番号は一意です。重みの数値は何でもかまいません...私はどうにかしてemの重みを付ける必要があります....

eg.
Math (weight: 1) - 83%
Engrish (weight: 6) - 82%
Chemistry (weight: 2) - 81%
Drama (Weight: 3) - 100%
Geography (weight: 4) - 82%
Sport (Weight: 5)- 81%
etc..

上位 3 つの結果は次のとおりです。

  • ドラマ
  • 算数
  • 地理 (英語ではありません。地理 W = 4、英語 W = 6)

これがLinqで達成できるかどうか疑問に思っています(以前の質問/回答のように)。私は辞書などに満足しています。また、Comparer メソッドをオーバーロードする必要があるのではないかと思いますか?

どんな助けにも乾杯:)

4

2 に答える 2

1

うーん。あなたの以前の回答に基づいて、私から考え出しました。(つまり、テストされていません)

var result = (from p in pairs
              orderby p.Value descending, p.Weight
              select p);

var result = pairs.OrderByDescending(p => p.Value)
                  .ThenBy(p => p.Weight);
于 2009-08-24T05:01:17.790 に答える
0

前と同じ答えを使用しますが、注文時に値に重量を掛けます。

于 2009-08-24T04:33:13.120 に答える