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();
Привет! Мне нужна помощь с этой программой, которая принимает числа, но после ввода "quit" она должна вывести список всех введенных уникальных номеров.
Например, вот ввод: 5, 5, 5, 2, 2, 1, 3 В консоли должны отображаться только 1 и 3, потому что они являются единственными уникальными номерами.
Проблема в том, что программа в ее нынешнем виде отображает только последний введенный уникальный номер, а не все, и я не знаю, почему.
Не могли бы вы сказать мне, почему? Что мне нужно сделать, чтобы перечислить их все?
numberList.GroupBy(number => number).Where(group => (group.Count() == 1)).Select(group => group.Key)
. Кроме того, использованиеContains
со списком очень неэффективно. Вы можете использоватьDictionary<int, int>
для хранения чисел вместе с их количеством вхождений. - person vc 74   schedule 28.08.2018