C# 控制台打印次数太多
我在学习数组时遇到了一个小问题。所以我需要打印出数组中唯一的元素。当我运行程序时,它打印出的值超过了数组lol中的值的数量。如果这是一个非常简单和愚蠢的问题,我很抱歉,但我看不出它有什么问题。语言是c#C# 控制台打印次数太多,c#,arrays,C#,Arrays,我在学习数组时遇到了一个小问题。所以我需要打印出数组中唯一的元素。当我运行程序时,它打印出的值超过了数组lol中的值的数量。如果这是一个非常简单和愚蠢的问题,我很抱歉,但我看不出它有什么问题。语言是c# static void Main(字符串[]args) { 整数[]个数=新整数[10]; 随机=新随机(); 对于(int i=0;i
static void Main(字符串[]args)
{
整数[]个数=新整数[10];
随机=新随机();
对于(int i=0;i<10;i++)
{
数字[i]=random.Next(0,10);
}
数组。排序(数字);
foreach(数值形式的变量num)
{
Write(“{0},”,num);
}
控制台。写线(“”);
对于(int i=0;i<10;i++)
{
对于(int j=1;j<10;j++)
{
如果(数字[i]==数字[j])
{
打破
}
其他的
{
控制台。写入(数字[i]+“,”);
}
}
}
我不确定末尾嵌套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 + ", "));
我的朋友,写这个程序时你想要什么?我只想打印出一个随机数组中的唯一元素。例如,如果数组是1,4,6,6,6,3,3,我希望程序输出1,3,4,6。每个部分都是这样,我可以比较并确保它正常工作。
numbers.Distinct()
不是一个选项?在我看来,您发布的代码在您知道数字是否唯一之前会过早地打印数字。在我看来,由于您首先对值进行排序,因此不需要嵌套循环来查找重复项。您是否尝试过自己调试此代码?您是否注意到任何特别的问题g?你具体遇到了什么问题?创建一个字典,如果尚未添加数字,则将其添加到字典中。然后循环字典并打印出数字。在线搜索c#字典。
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 + ", "));
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()));