【发布时间】:2017-03-20 15:41:53
【问题描述】:
这是我现在的代码,我需要帮助,以免重复。我在学校需要这个,所以如果你也能解释一下,那会很有帮助。顺便说一句,它不在乎瑞典语的 cmets
int temp;
int[] myArray = new int[20]; // Array med 20 tal
Random random = new Random(); // Skapar metoden "Random"
for (int i = 0; i < myArray.Length; i++) // Forloop med 20 positioner
{
myArray[i] = random.Next(1, 100); // Ger random värden till dessa 20 positionerna
for (int j = 0; j < myArray.Length; j++)
{
if (myArray[i] > myArray[j]) // Array [i] större än Array [j]
{
//temp = myArray[j];
//myArray[j] = myArray[i];
//myArray[i] = temp;
}
}
Console.Write(myArray[i] + " ");
}
【问题讨论】:
-
使用
HashSet<int>代替int的数组,然后执行hashSet.ToArray() -
击败我 dcg :) 是的,如果你不关心元素的顺序,HashSet 是你最好的选择
-
如果这是一项学校任务,仅使用
HashSet很可能是不够的,而是显示其背后的逻辑。 -
如果您的数组大小为 20,您的随机数范围为 [1;21] 并且您不想要任何重复项,为什么还需要 Random?它看起来更像是您需要将一系列元素 1 到 20 打乱。C# Shuffle
-
看起来您希望数字 1-20 以随机顺序排列。所以另一种方法是按顺序填充数组,然后对其进行洗牌。例如
array = array.OrderBy(x => random.Next()).ToArray();
标签: c# arrays duplicates