C# 配列・Listのソート・要素の並び換え OrderBy

こんにちは。レモンティーです。

今回は、配列・Listの要素を並び換え、
上からn個だけ取得します。

先に例を書くとこんな感じです

 var Party = new List<Human>
            {
                new Human{Name = "けんじ",Level = 12},
                new Human{Name = "たかし",Level = 44},
                new Human{Name = "あけみ",Level = 25},
                new Human{Name = "ひろき",Level = 31},
                new Human{Name = "ゆみ",Level = 94},
                new Human{Name = "たけし",Level = 8},
                new Human{Name = "みさと",Level = 67},
                new Human{Name = "はるか",Level = 28},
            };

            var strongmember = Party.OrderByDescending(x => x.Level)
                                    .Take(5);

            foreach (var sm in strongmember)
                Console.WriteLine("{0} (Level:{1})", sm.Name, sm.Level);

これでLevelの高い順に5人だけ取得します。
出力はこうなります

f:id:sawalemontea:20171111160812p:plain


使ったのはLinqのOrderByメソッドです。
これは引数に入れた変数で配列やListをソートしたものを返してくれます。
そのままだと昇順です。

降順にするには、代わりにOrderByDescendingを使います。


Takeメソッドは、配列やリストのはじめから指定した数だけ
要素をとってくれます。
もし要素が3つしかないのに5を引数にわたしても
例外は発生せず、3つだけとってくれます。


ちなみに複数のキーでの並び変えは↓コチラ
sawalemounity.hatenablog.com



今回はこれでおしまいです

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com

sawalemounity.hatenablog.com