[C#]List(リスト)をランダムに並び替えるには?

C#

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

List(リスト)をランダムに並び替える方法を紹介します。

スポンサーリンク

方法

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

Listを並び替えるには、System.LinqのOrderBy()とRandom()を使います。

まず、System.Linqを導入します。

using System.Linq;

次に、Radomのインスタンスを生成します。

var random = new Random();

そして、ListからOrderByを呼び出し、OrderByのラムダ式でRandomのNext()を返します。

OrderBy()からToArray()を呼び出し、ToArrayの結果を元の配列に代入します。

array = array.OrderBy(x => random.Next()).ToList();

これでListの要素がランダムに並び替えられます。

スポンサーリンク

使用例

using System;
using System.Linq;
using System.Collections.Generic;
public class Example
{
	public static void Main()
	{
		List<int> numbers = new List<int>() {1, 2, 3, 4, 5};

		var random = new Random();

		numbers = numbers.OrderBy(x => random.Next()).ToList();
		
		foreach (var i in numbers)
		{
		    Console.WriteLine(i);
		}
	}
}

コメント

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