嗨,我正在研究这个简单的程序,只要数字大于10且小于100,就会从用户那里获得5个数字。我的目标是删除重复的数字,只显示不重复的数字。假设我输入23,23,40,56,37,我应该只输出40,56,37。请帮助我。提前致谢。这是我的代码:
static void Main(string[] args)
{
int[] arr = new int[5];
for (int i = 0; i < 5; i++)
{
Console.Write("\nPlease enter a number between 10 and 100: ");
int number = Convert.ToInt32(Console.ReadLine());
if (number > 10 && number <= 100)
{
arr[i] = number;
}
else {
i--;
}
}
int[] arr2 = arr.Distinct().ToArray();
Console.WriteLine("\n");
for (int i = 0; i < arr2.Length; i++)
{
Console.WriteLine("you entered {0}", arr2[i]);
}
Console.ReadLine();
}
我认为您正在寻找:
int[] arr2 = arr.GroupBy(x => x)
.Where(dup=>dup.Count()==1)
.Select(res=>res.Key)
.ToArray();
输入数组:23 , 23, 40, 56 , 37
输出数组:40 , 56 , 37
怎么运行的:
arr.GroupBy(x => x)
=>给出{System.Linq.GroupedEnumerable<int,int,int>}
x.Key给您唯一元素的集合。.Where(dup=>dup.Count()==1)
=>提取KeyValuePairs
包含的值完全等于的1
.Select(res=>res.Key)
=>将根据上述结果收集密钥本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句