C# 这个代码不改变顺序是完全有效的吗? int [] nums = new int[30]; for (int i = 0; i < nums.Length; i++) { nums[i] = i + 1; } Random rnd = ne
这个代码不改变顺序是完全有效的吗?C# 这个代码不改变顺序是完全有效的吗? int [] nums = new int[30]; for (int i = 0; i < nums.Length; i++) { nums[i] = i + 1; } Random rnd = ne,c#,arrays,distinct,C#,Arrays,Distinct,这个代码不改变顺序是完全有效的吗? int [] nums = new int[30]; for (int i = 0; i < nums.Length; i++) { nums[i] = i + 1; } Random rnd = new Random(); int[] card1 = new int[6]; for (int i = 0; i < card1.Length; i++) { card1[i] = nums[rnd.Next(0, 30)]; }
int [] nums = new int[30];
for (int i = 0; i < nums.Length; i++)
{
nums[i] = i + 1;
}
Random rnd = new Random();
int[] card1 = new int[6];
for (int i = 0; i < card1.Length; i++)
{
card1[i] = nums[rnd.Next(0, 30)];
}
Random rnd = new Random();
var values = new List<int>(nums); // 1
int[] card1 = new int[6];
for (int i = 0; i < card1.Length; i++)
{
var rand = rnd.Next(0, values.Count); // 2
card1[i] = values[rand]; // 3
values.RemoveAt(rand); // 4
}
var sourceArray = // your loop, or something like Enumerable.Range(1, 30).ToArray();
var arrayToPickFrom = Shuffle(sourceArray.ToArray()); // make a copy and shuffle it
var randomCards = arrayToPickFrom.Take(6); // take the first six elements
var theOtherArray = Nums.Take(6).ToArray();
int[] card1 = nums.OrderBy(it => Guid.NewGuid()).Take(6).ToArray();