2009-08-24 3 views
-1

月前に私はこの質問をしました:Trying to find the top 3 properties of a POCO instance。答えが得られ、うまくいった。POCOインスタンスのトップ3のプロパティ、パート2を見つけようとしました。

私は以前の質問のようにPOCOオブジェクトの上位3つのプロパティを見つけようとしていますが、各プロパティにはWEIGHTがあります。プロパティの値が最初に来ます。 2つ以上のプロパティーが同じ値を持つ場合、重みは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の結果は、順番に、あるに必要な...何もすることができます

  • 地理(Engrishない。地理W = 4、Engrish W = 6)

このことができる場合、私は思ったんだけど私の以前の質問/回答のようなLinqとchieved。私は辞書などに満足しています。私はComparerメソッドをオーバーロードする必要があるかもしれないと推測しています。任意の助け

乾杯:)

答えて

1

Uhm。あなたの以前の答えに基づいて、そして私の心から作り上げました。 (すなわちテストされていない)

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); 
+0

ThenBy .. WTF ?!とんでもない!!!!!! *それは存在する?私はlovin 'linqますます(それが可能だった場合)。 brb .... –

+0

スクワットBANG !!!!!!!!!!!!!!!ウィナー。それはすごく怖いです。ありがとう、私の週を作った! (私はlinqとSOが大好きです)。 –

0

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

+0

この値に重量を掛けますか?それは右に聞こえません....私は1の値で100%、6の値で99%がある場合、99%が最初にリストされ、右。 –

関連する問題