[C#]List(リスト)を降順にソートするには?

C#

どうも、ちょげ(@chogetarou)です。

List(リスト)を降順にソートする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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()を使う方法

コメント

タイトルとURLをコピーしました