2017-05-01 10 views
0

私はこのコンストラクタをファイルから読み込みますが、わかるように、Random rand = new Random();の直後にインデックスを数回使用しています。 これらのインデックスを配列に変更する方法はありますか?コンストラクタ内の配列にインデックスを変更する可能性

ありがとうございます!

あなたは私が

アイテム= Items.OrderBy理解するものとして、あなたのリストをシャッフルしたい

private static void MensSingle(int numPlayers) 
{ 
     //Players 
     var f = new ReadFile(@"C:\Path.txt"); 
     f.LoadPlayers(100,GenderType.Male); 
     List<Player> totalPlayers = f.playerListTxt; 
     List<Player> myPlayers = new List<Player>(); 
     int myTotalPlayers = 100; 
     for (int i = 0; i < numPlayers; i++) 
     { 
      Random rand = new Random(); 
      int playerIndex = rand.Next(1, myTotalPlayers); 
      Player p = totalPlayers[playerIndex - 1]; 
      myPlayers.Add(p); 
      totalPlayers.Remove(totalPlayers[playerIndex - 1]); 
      myTotalPlayers -= 1; 
     } 
} 
+2

あなたは何を意味*配列にこれらのインデックスを変更しますか*?? – Rahul

+0

つまり、これらのインデックスを代わりに配列(文字列配列など)にすることもできますし、インデックスを変更しないでください。 – Rizza

+0

あなたは、提供しているシードのすべてのランダム値を取得したいとします。一度にループすることなく 'Next()'を呼び出すことができますか? – Rahul

答えて

-1

ToListメソッド()(O => Guid.NewGuid()ToStringメソッド()。)。以下について

+0

操作をランダム化するには 'Random'を使います。 'Guid'は、ランダムではなく、ユニークであることが保証されています。 – Abion47

0

何:

Random r = new Random(); 
int maxPlayerCount = 100; 
int myPlayerCount = 10; 
List<int> players = Enumerable.Range(1, maxPlayerCount).ToList(); 
List<int> myPlayers = Enumerable.Range(1, myPlayerCount) 
          .Select(i => players.Skip(r.Next(1, players.Count)).First()) 
          .ToList(); 
関連する問題