Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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# 添加到列表和循环_C#_List_Loops - Fatal编程技术网

C# 添加到列表和循环

C# 添加到列表和循环,c#,list,loops,C#,List,Loops,我对编程产生了新的兴趣,但是我遇到了一些问题。我曾尝试制作一个简单的程序,用户输入10个数字,如果数字为0,它将停止,然后将这些数字添加到列表中,然后在最后打印列表。但是,我的程序在停止之前只要求输入4个数字,当输入0时它不会停止,并且每次循环时,开始处的“输入数字消息”会打印3次 任何帮助都将不胜感激 namespace ConsoleApplication1 { class Program { static void Main(string[] args) {

我对编程产生了新的兴趣,但是我遇到了一些问题。我曾尝试制作一个简单的程序,用户输入10个数字,如果数字为0,它将停止,然后将这些数字添加到列表中,然后在最后打印列表。但是,我的程序在停止之前只要求输入4个数字,当输入0时它不会停止,并且每次循环时,开始处的“输入数字消息”会打印3次

任何帮助都将不胜感激

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args) {
            // I want to make a list
            // keep asking the user for values
            // which will then add those values onto the list
            // then print the list
            // create a list
            List<int> list = new List<int>();
            int count = 0;

            while (count < 10) {
                Console.WriteLine("Enter a value to add to the list");
                int number = Console.Read();
                list.Add(number);

                if (number == 0) {
                    break;
                }

                count++;
            }

            Console.WriteLine("The final list looks like this");

            foreach (int number in list) {
                Console.WriteLine(number);
                Console.ReadLine();
            }
        }
    }
}
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数){
//我想列个清单
//不断询问用户的值
//然后将这些值添加到列表中
//然后打印列表
//创建一个列表
列表=新列表();
整数计数=0;
同时(计数<10){
WriteLine(“输入要添加到列表中的值”);
int number=Console.Read();
列表。添加(编号);
如果(数字==0){
打破
}
计数++;
}
WriteLine(“最终列表看起来像这样”);
foreach(列表中的整数){
控制台写入线(编号);
Console.ReadLine();
}
}
}
}

问题在于Console.Read()-它读取的是一个字节,而不是在您的情况下应该转换为int的字符串

您要查找的是Console.ReadLine(),周围是int.Parse()。大概是这样的:

int number = int.Parse(Console.ReadLine());

您好,我刚刚编辑了您的代码以匹配缩进和括号。我建议您将此作为一条经验法则,因为这通常会使您更容易找到问题。建议:与其在<代码>期间执行<代码>并自己处理<代码>计数,不如在这里使用<代码>for(int count=0;count<10;count++)简化您的生活,让您熟悉调试器。调试要比盯着代码进行推理容易得多。非常感谢你们两位,我非常感谢你们的大力帮助!尽管如果用户没有输入有效的数字,这可能会导致异常。您应该首先确保它是一个由
int.TryParse()
生成的数字。谢谢你们,我非常感谢你们的帮助!