2017-06-14 6 views
0

をシャッフルすることは、まだ0から24までが、ランダムな順序ですべての数字を持つようにランダムに25個の数字がランダムに私が行うために必要なもの、配列

int[] arr = Enumerable.Range(0, 24).ToArray(); 

の配列をシャッフルです。 これを行う最も簡単な方法は何ですか?

@edit;

namespace WindowsFormsApp1 
{ 
    public partial class Form1 : Form 
    { 
     Random rnd = new Random(); 
     int[] arr = Enumerable.Range(0, 24).OrderBy(c => rnd.Next()).ToArray(); 

     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 
} 
+0

'VARランダム=新しいランダム()等。 arr = arr.OrderBy(i => random.Next())。ToArray(); ' –

+2

Google「Fisher-Yates shuffle」のアイデア。 – rossum

答えて

1

することはできOrderBy(c => rnd.Next())この

Random rnd = new Random(); 
int[] arr = Enumerable.Range(0, 24).OrderBy(c => rnd.Next()).ToArray(); 
+0

ビジュアルは私のためにこれを実行しません。 'フィールド初期化子が非静的フィールド、メソッド、またはプロパティを参照できません' – Ayukawa

+0

@Ayukawa更新された回答を参照してください。変数の名前を 'rnd'に変更しました。固定といいえは動作しません。それを試してみてください。 –

+0

私は実際に間違いに気付き、どちらの場合も 'rnd'を 'random'に変更したので、問題はありません。 – Ayukawa

関連する問題