MRが楽しい

MRやVRについて学習したことを書き残す

C#でリストを昇順降順で並び替える

本日はC#の小ネタ枠です。
C#でリストを昇順降順で並び替える方法についてです。

昇順の並べ替え

Sort メソッドを使う場合

Sort メソッドを使うとリストの要素を昇順に並べ替えることができます。
名前空間 System.Collections.Generic から利用できます。

List<int> testDataList = new List<int> { 1, 5, 2, 4, 3 };
testDataList.Sort();
Debug.Log($"# 昇順で並べ替え: {string.Join(", ", testDataList)}");

実行結果

# 昇順で並べ替え: 1, 2, 3, 4, 5

learn.microsoft.com

OrderBy メソッドを使う場合

OrderBy メソッドを使うとリストの要素を昇順に並べ替えたシーケンスを戻り値で受け取ることができます。
元のリストは変更されません。名前空間 System.Linq から利用できます。

List<int> testDataList = new List<int> { 1, 5, 2, 4, 3 };
var resultAscendingList = testDataList.OrderBy(element => element);
Debug.Log($"# 昇順で並べ替え: {string.Join(", ", resultAscendingList)}");
Debug.Log($"# 元のリスト: {string.Join(", ", testDataList)}");

実行結果

# 昇順で並べ替え: 1, 2, 3, 4, 5
# 元のリスト: 1, 5, 2, 4, 3

learn.microsoft.com

降順の並べ替え

Reverse メソッドを使う場合

Reverse メソッドを使うとリストの要素を反転することができます。
Sort を行った後に Reverse を行うことでリストを降順に並べ替えることができます。
名前空間 System.Collections.Generic から利用できます。

List<int> testDataList = new List<int> { 1, 5, 2, 4, 3 };
testDataList.Sort();
testDataList.Reverse();
Debug.Log($"# 降順で並べ替え: {string.Join(", ", testDataList)}");

実行結果

# 降順で並べ替え: 1, 2, 3, 4, 5

learn.microsoft.com

または Sort メソッドに結果を反転する要素比較のデリゲートを指定することでも直接降順に並べ替えることができます。

List<int> testDataList = new List<int> { 1, 5, 2, 4, 3 };
testDataList.Sort((a, b) => b - a);
Debug.Log($"# 降順で並べ替え: {string.Join(", ", testDataList)}");

実行結果

# 降順で並べ替え: 5, 4, 3, 2, 1

OrderByDescending メソッドを使う場合

OrderByDescending メソッドを使うとリストの要素を降順に並べ替えたシーケンスを戻り値で受け取ることができます。
元のリストは変更されません。名前空間 System.Linq から利用できます。

List<int> testDataList = new List<int> { 1, 5, 2, 4, 3 };
var resultAscendingList = testDataList.OrderByDescending(element => element);
Debug.Log($"# 降順で並べ替え: {string.Join(", ", resultAscendingList)}");
Debug.Log($"# 元のリスト: {string.Join(", ", testDataList)}");

実行結果

# 降順で並べ替え: 5, 4, 3, 2, 1
# 元のリスト: 1, 5, 2, 4, 3

learn.microsoft.com