#配列の要素をシャッフルしたい
配列の要素をシャッフルして試験したいときありませんか?
自分はありました。
そのときに使ったプログラムをメモします。
using System;
using System.Linq;
namespace random
{
class Program
{
static void Main(string[] args)
{
/// <summary>
/// 試行パターン番号配列の基本配列
/// </summary>
//int[] basicArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
int[] basicArray = Enumerable.Range(1, 20).Select(n => (int)n).ToArray();
/// <summary>
/// 試行パターン番号配列
/// 試行パターン番号配列の基本データの要素の順番をシャッフルした結果
/// </summary>
int[] trialPatternArray = basicArray.OrderBy(i => System.Guid.NewGuid()).ToArray();
// コンソールに出力
foreach (int element in trialPatternArray)
{
System.Console.WriteLine(element);
}
Console.ReadKey();
}
}
}
実行結果は以下の通り。
3
11
15
1
20
18
19
12
16
6
2
14
17
13
5
4
10
8
9
7
これで配列要素をシャッフルできます。