C#简单控制台应用程序显示/逻辑问题 List numberList=newlist(); List uniqueList=新列表(); 字符串输入; 整数=0; bool over=false; 当(!结束) { input=Console.ReadLine(); 如果(输入=“退出”) { 过度=正确; 打破 } if(int.TryParse(输入,输出编号)) { numberList.Add(数字); } } for(int i=0;im==n)==1); foreach(唯一中的var u) 写线(u);
嗨!我需要一些关于这个接收数字的程序的帮助,但是在键入“quit”时,它应该列出所有已输入的唯一的数字 例如,这里是输入:5,5,5,2,2,1,3 控制台应仅显示1和3,因为它们是唯一的唯一的数字 问题是,当前形式的程序只显示输入的最后一个唯一数字,而不是所有数字,我不知道为什么C#简单控制台应用程序显示/逻辑问题 List numberList=newlist(); List uniqueList=新列表(); 字符串输入; 整数=0; bool over=false; 当(!结束) { input=Console.ReadLine(); 如果(输入=“退出”) { 过度=正确; 打破 } if(int.TryParse(输入,输出编号)) { numberList.Add(数字); } } for(int i=0;im==n)==1); foreach(唯一中的var u) 写线(u);,c#,list,console,console-application,text-based,C#,List,Console,Console Application,Text Based,嗨!我需要一些关于这个接收数字的程序的帮助,但是在键入“quit”时,它应该列出所有已输入的唯一的数字 例如,这里是输入:5,5,5,2,2,1,3 控制台应仅显示1和3,因为它们是唯一的唯一的数字 问题是,当前形式的程序只显示输入的最后一个唯一数字,而不是所有数字,我不知道为什么 你能告诉我为什么吗?我需要做什么才能列出所有这些内容?您可以做得更简单 List<int> numberList = new List<int>(); List
你能告诉我为什么吗?我需要做什么才能列出所有这些内容?您可以做得更简单
List<int> numberList = new List<int>();
List<int> uniqueList = new List<int>();
string input;
int number = 0;
bool over = false;
while (!over)
{
input = Console.ReadLine();
if (input == "quit")
{
over = true;
break;
}
if (int.TryParse(input, out number))
{
numberList.Add(number);
}
}
for (int i = 0; i < numberList.Count; i++)
{
if (!uniqueList.Contains(number))
{
uniqueList.Add(number);
}
}
for (int i = 0; i < uniqueList.Count; i++)
{
Console.WriteLine(uniqueList[i]);
}
Console.ReadKey();
List number=新列表{1,2,2,3,3,4,4,5,6,6};
var unique=numbers.Where(n=>numbers.Count(m=>m==n)==1);
foreach(唯一中的var u)
写线(u);
印刷品
一,
五,
它所做的是标记列表编号,并查看列表中的每个成员(在本例中,该成员称为n
)
然后检查n
的出现次数是否等于1。如果是,则必须是唯一的
因此,对于清单1中的第一个数字,如下所示:
number.Count(m=>m==n)
将返回1
当n
为2时,则
number.Count(m=>m==n)
将返回2。您可以更简单地执行此操作
List<int> numberList = new List<int>();
List<int> uniqueList = new List<int>();
string input;
int number = 0;
bool over = false;
while (!over)
{
input = Console.ReadLine();
if (input == "quit")
{
over = true;
break;
}
if (int.TryParse(input, out number))
{
numberList.Add(number);
}
}
for (int i = 0; i < numberList.Count; i++)
{
if (!uniqueList.Contains(number))
{
uniqueList.Add(number);
}
}
for (int i = 0; i < uniqueList.Count; i++)
{
Console.WriteLine(uniqueList[i]);
}
Console.ReadKey();
List number=新列表{1,2,2,3,3,4,4,5,6,6};
var unique=numbers.Where(n=>numbers.Count(m=>m==n)==1);
foreach(唯一中的var u)
写线(u);
印刷品
一,
五,
它所做的是标记列表编号,并查看列表中的每个成员(在本例中,该成员称为n
)
然后检查n
的出现次数是否等于1。如果是,则必须是唯一的
因此,对于清单1中的第一个数字,如下所示:
number.Count(m=>m==n)
将返回1
当n
为2时,则
number.Count(m=>m==n)
将返回2。我已检查并修复了您的代码。虽然它并不完美,但我已经指出了关键的错误
List<int> numbers = new List<int>{1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6};
var unique = numbers.Where(n => numbers.Count(m => m == n) == 1);
foreach(var u in unique)
WriteLine(u);
List numberList=newlist();
List uniqueList=新列表();
字符串输入;
整数=0;
bool over=false;
当(!结束)
{
input=Console.ReadLine();
如果(输入=“退出”)
{
过度=正确;
//break;//不需要它,因为您有over=true
}
if(int.TryParse(输入,输出编号))
{
numberList.Add(数字);
}
}
for(int i=0;iq==numberList[i])==1)
{
//uniqueList.Add(number);//这也是错误的
唯一列表。添加(数字列表[i]);
}
}
for(int i=0;i
简单地说,计算中的Count(…)方法
numberList.Count(q=>q==numberList[i])==1
行只计算满足所提供条件的numberList的元素。在这种情况下,条件是
q==数字列表[i]
这基本上意味着计算等于numberList[i]的元素
为了更好地理解,您还可以阅读C#中的委托和lambda表达式。我已经检查并修复了您的代码。虽然它并不完美,但我已经指出了关键的错误
List<int> numbers = new List<int>{1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6};
var unique = numbers.Where(n => numbers.Count(m => m == n) == 1);
foreach(var u in unique)
WriteLine(u);
List numberList=newlist();
List uniqueList=新列表();
字符串输入;
整数=0;
bool over=false;
当(!结束)
{
input=Console.ReadLine();
如果(输入=“退出”)
{
过度=正确;
//break;//不需要它,因为您有over=true
}
if(int.TryParse(输入,输出编号))
{
numberList.Add(数字);
}
}
for(int i=0;iq==numberList[i])==1)
{
//uniqueList.Add(number);//这也是错误的
唯一列表。添加(数字列表[i]);
}
}
for(int i=0;i
简单地说,计算中的Count(…)方法
numberList.Count(q=>q==numberList[i])==1
行只计算满足所提供条件的numberList的元素。在这种情况下,条件是
q==数字列表[i]
这基本上意味着计算等于numberList[i]的元素
您还可以阅读有关代表的信息
using System;
using System.Collections.Generic;
using System.Linq;
namespace EntryPoint.Concole
{
class Program
{
static void Main(string[] args)
{
List<int> numberList = new List<int>();
List<int> uniqueList = new List<int>();
string input;
int number = 0;
bool over = false;
while (!over)
{
input = Console.ReadLine();
if (input == "quit")
{
over = true;
break;
}
if (int.TryParse(input, out number))
{
numberList.Add(number);
}
}
var numbersDistinct = numberList.GroupBy(i => i);
foreach (var num in numbersDistinct)
{
if (num.Count() == 1)
{
uniqueList.Add(num.Key);
}
}
for (int i = 0; i < uniqueList.Count; i++)
{
Console.WriteLine(uniqueList[i]);
}
Console.ReadKey();
}
}