我在尝试学习数组时遇到了一些问题。所以我的想法是我需要打印出数组中的唯一元素。当我运行程序时,它打印出的数量超过数组中的值数lol。如果这是一个超级简单而愚蠢的问题,我很抱歉,但我没有看到它的问题。语言是c#。
static void Main(string[] args)
{
int[] numbers = new int[10];
Random random = new Random();
for (int i = 0; i < 10; i++)
{
numbers[i] = random.Next(0, 10);
}
Array.Sort(numbers);
foreach (var num in numbers)
{
Console.Write("{0}, ", num);
}
Console.WriteLine("");
for (int i = 0; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
if (numbers[i] == numbers[j])
{
break;
}
else
{
Console.Write(numbers[i] + ", ");
}
}
}
答案 0 :(得分:0)
我不确定最后嵌套for循环的疯狂是什么。但是你可以这样做。
int[] numbers = new int[10];
Random random = new Random();
for (int i = 0; i < 10; i++)
{
numbers[i] = random.Next(0, 10);
}
Array.Sort(numbers);
foreach (var num in numbers)
{
Console.Write("{0}, ", num);
}
Console.WriteLine();
numbers = numbers.Distinct().ToArray();
numbers.ToList().ForEach(x => Console.Write(x + ", "));
另一个较短的选项,我把它归结为4行:
Random random = new Random();
int[] numbers = Enumerable.Repeat(0, 10).Select(i => random.Next(0, 10)).ToArray();
Console.WriteLine(string.Join(", ", numbers));
Console.WriteLine(string.Join(", ", numbers.Distinct()));