我正忙于C#,我尝试在0-256之间生成唯一值。我使用arraylist为this.array是一个arraylist
for (int i = 0; i < 256; i++)
array.Add(i);
for (int i = 0; i < 256; i++)
{
x = rand.Next(0, m);
dizi_random[i] = (int)array[x];
array.Remove(x);
m--;
}
但我没有产生独特的价值。我该怎么办?
答案 0 :(得分:4)
相反,使用Linq可以相当简洁地完成;生成一个范围并随机排序;
Random rand = new Random((int)DateTime.UtcNow.Ticks);
var randomArray = Enumerable.Range(0, 256).OrderBy(_ => rand.NextDouble());