2012-04-08 13 views
2

私は教科書に取り組んでいますが、これには私のゲームではスコアボードを持っていなければなりませんが、score.scoreでScoreオブジェクトのリストをソートする方法が必要です。私のScoreオブジェクトには、プレイヤーの名前と到達したレベルが含まれています。リストが使用するオブジェクトの中の要素によってリストをどのようにソートしますか?

私はプログラミングにあまり経験はなく、1年も経っていません。検索で見つかったのは、ラムダやIComparableについて話している人たちです。 !使用して、MSDNは、私はここに私の髪を引っ張ってる:(それは簡単に私のために理解することが

を作成していないよう、すべてのヘルプは素晴らしいことだ

疑似では、私が必要とするすべては、次のとおりです。

List<Score> scores; 
// Load in scores 
scores.Sort(//sort by score.actualScore) 

私はそのリストに追加したり削除したりすることができますctは新しいスコアが追加されたときに配置されます。

答えて

6
var ordered = scores.OrderBy(x => x.ActualScore).ToList(); 

または:

var ordered = scores.OrderByDescending(x => x.ActualScore).ToList(); 
+0

感謝<3 –

3

最も簡単な方法は、それComparison delegate渡すことであろう。あなたの例では、それは次のようになります。多くの人が感謝

scores.Sort((a, b) => a.actualScore - b.actualScore); 
+1

以上、一般的に、myList.Sort((a、b)は=> a.CompareTo(B))、のタイプを想定しmyListはIComparable を実装しています。 – Asik

+0

@Dr_Asik: 'T:IComparable 'の場合、 'Sort'は自動的にそれを使用して' Comparison'を不要にしますか? – Ryan

+0

はい、私は意味:myList.Sort((a、b)=> a.Property1.CompareTo(b.Property1)); – Asik

関連する問題