どうも、ちょげ(@chogetarou)です。
List(リスト)を降順にソートする方法を紹介します。
方法

List(リスト)を降順にソートする方法は、3つあります。
Sort()
1つ目は、Sort()を使う方法です。
まず、ListからSort()を呼び出します。
そして、Sort()の引数に「(a, b) => b.CompareTo(a)」を指定します。
list.Sort((a, b) => b.CompareTo(a));
上記のSort((a, b) => b.CompareTo(a))は、呼び出したリストを降順にソートします。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> numbers = new List<int>() { 3, 1, 5, 7, 2, 6, 4, };
numbers.Sort((a, b) => b.CompareTo(a));
foreach (var i in numbers)
{
Console.WriteLine(i);
}
}
}

Sort() + Reverse()
2つ目は、Sort()とReverse()を使う方法です。
まず、ListからSort()を呼び出します。
そして、ListからReverse()を呼び出します。
list.Sort();
list.Reverse();
ListからSort()を呼び出し、その後にReverse()を呼び出すことで、Listを降順にソートできます。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> numbers = new List<int>() { 3, 1, 5, 7, 2, 6, 4, };
numbers.Sort();
numbers.Reverse();
foreach (var i in numbers)
{
Console.WriteLine(i);
}
}
}
OrderByDescending()
3つ目は、System.LinqのOrderByDescending()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
そして、ListからOrderByDescending()を呼び出し、引数に「i => i」を指定します。
OrderByDescending()からToList()を呼び出し、ToList()の戻り値をListに代入します。
array = array.OrderByDescending(i => i).ToList();
ここまでの処理で、Listを降順にソートできます。
使用例
using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
public static void Main()
{
List<int> numbers = new List<int>() { 3, 1, 5, 7, 2, 6, 4, };
numbers = numbers.OrderByDescending(i => i).ToList();
foreach (var i in numbers)
{
Console.WriteLine(i);
}
}
}
まとめ
List(リスト)を降順にソートする方法は、次の3つです。
- Sort()を使う方法
- Sort()とReverse()を使う方法
- System.LinqのOrderByDescending()を使う方法
コメント