2016-10-07 1 views
-3

Also ich zwei Objekt-Arrays können sagen, Filling haben ...ein leeres Objekt-Array mit einem vollen ein zufällig in C#

Test[] Filled = new Test[5]; //copied from 
    Test[] Empty = new Test[5]; // pasted to 

    //they contain 3 different variables aswell 

Wie würden Sie es tun, wenn Sie in (nicht entfernen) 5 zufällige Objekte kopieren würde zufällige Positionen. Von gefüllt bis leer. Es kann genauso viele Duplikate geben wie zufällig.

+3

Ok, ich sehe die Arrays, aber was ist mit dem, was Sie bisher versucht haben, um Ihre Objekte zu kopieren? –

+0

Iterieren des vollständigen Arrays; Erzeuge eine Zufallszahl zwischen 0 - einschließlich 4; diese Zahl wird der Index in das Zielarray sein; Wenn diese Array-Position bereits etwas enthält, versuchen Sie es erneut mit einer neuen Zufallszahl. – radarbob

Antwort

1

Dies ist eine mögliche Lösung.

 Test[] Filled = new Test[5]; 
     Test[] Empty = new Test[5]; 

     //insert some data to Filled array 

     Random random = new Random(); 
     int randomNumber = random.Next(0, 4); 

     for (int i = 0; i < Empty.Length; i++) 
     { 
      Empty[i] = Filled[randomNumber]; 
      randomNumber = random.Next(0, 4); 
     } 
0

Ich nehme an, du meinst das Mischen mit der Möglichkeit von Duplikaten. Versuchen Sie etwas wie:

var random = new Random(); 
var randomized = new Test[Filled.Length]; 

for (int i = 0; i < Filled.Length; i++) 
{ 
    randomized[i] = Filled[random.Next(Filled.Length)]; 
}