Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 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

嗨!我需要一些关于这个接收数字的程序的帮助,但是在键入“quit”时,它应该列出所有已输入的唯一的数字

例如,这里是输入:5,5,5,2,2,1,3 控制台应仅显示13,因为它们是唯一的唯一的数字

问题是,当前形式的程序只显示输入的最后一个唯一数字,而不是所有数字,我不知道为什么


你能告诉我为什么吗?我需要做什么才能列出所有这些内容?

您可以做得更简单

        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();
        }
    }