[C#]ランダムな配列の作り方

検証用として考えました。(実務では、無意味ですね)

ある配列があって中身をランダムな配列にするやり方をまとめます。

Guidを利用する方法

var randomList = list.OrderBy(i=>Guid.NewGuid()).ToArray();

Guidは、生成のたびに異なる値を出してくれます。これを利用して、Guidの順に並び替えることで任意の配列をランダムな順序に変更できます。

例えば、数値のランダムな順序の配列なら

var list = Enumerable.Range(0,10);
var randomList = list.OrderBy(i=>Guid.NewGuid()).ToArray();
foreach(var i in randomList)
{
    Console.WriteLine(i);
}

このようにすれば、0~9までの間のランダムな配列が簡単に手に入ります。

またlistを文字列の配列にすれば、ランダムな順序の文字列の配列も作ることができます。

var list = new List<string>{"apple", "banana", "hogehoge","hugahuga", "orange"};
var randomList = list.OrderBy(i=>Guid.NewGuid()).ToArray();
foreach(var i in randomList)
{
    Console.WriteLine(i);
}

次回は、これを使って検証したいことがあったので、それについて書いていきます!

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です