0

次のコードを使用して、リーグ テーブルのリストを注文しようとしています。

leagueTeamRow.OrderBy(c => c.points).ThenBy(c => c.goalDifference);

コードはコンパイルされますが、アイテムはソートされず、デフォルトの順序で表示されます。

これは私のクラスです

public class LeagueRow
    {
        public String teamName { get; set; }
        public String managerName { get; set; }
        public Int32 played { get; set; }
        public Int32 won { get; set; }
        public Int32 draw { get; set; }
        public Int32 lost { get; set; }
        public Int32 goalsFor { get; set; }
        public Int32 goalsAgainst { get; set; }
        public Int32 goalDifference { get; set; }
        public Int32 points { get; set; }
    }

誰かが私が欠けているものを提案できますか?

4

5 に答える 5

4

あなたはそれを見逃してOrderByおりThenBy、リストを適切な順序で並べていません。新しい順序付きリストを返します。

これは、すべての LINQ メソッドで使用される同じパターンです。

于 2013-04-09T14:01:24.930 に答える
3

ステートメントの結果を変数に代入する必要があると思います

var ordered = leagueTeamRow.OrderBy(c => c.points).ThenBy(c => c.goalDifference);
于 2013-04-09T14:01:25.030 に答える
3

順序付けの結果を変数などに割り当てる必要があります。

var ordered = leagueTeamRow.OrderBy(c => c.points).ThenBy(c => c.goalDifference);
于 2013-04-09T14:01:35.757 に答える
3

注文を確認するときに参照leagueTeamRowしていますか?OrderBy結果を変数に保存する必要があります。

そう

var orderedLeagueTeamRow = leagueTeamRow.OrderBy(c => c.points).ThenBy(c => c.goalDifference);
于 2013-04-09T14:00:21.367 に答える
3

OrderBy はIOrderedEnumerable: リストまたは IEnumerable を実装したものを返し、順序付けされます。あなたはそれを割り当てていません!

var ordered = leagueTeamRow.OrderBy(c => c.points).ThenBy(c => c.goalDifference);

順序付けされた変数では、設定したとおりに順序付けられます

詳細はこちら

于 2013-04-09T14:00:45.690 に答える