c# - Foreach本身会加倍或三倍

标签 c# .net arrays random foreach

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lotto
{
class Program
{

    static void Main(string[] args)
    {
        char k = 'l';
        while (!(k == 'k'))
        {
            Random rnd = new Random();
            int[] tablica = new int[6];
            for (int i = 0; i < 6; i++)
            {

                    tablica[i] = 0;

            }
                for (int i = 0, z; i < 6; i++)
                {
                   {
                    z = rnd.Next(1, 49);
                    while (tablica.Contains(z))
                    {
                        z = rnd.Next(1, 49);
                    }
                    tablica[i] = z;
                }
            }
            Array.Sort(tablica);
            foreach (int q in tablica)
            {
                Console.Write(q);
                Console.Write(", ");
            }
            k = Convert.ToChar(Console.Read()) ;
            Console.WriteLine("\n\n\n");
        }
    }


    }
 }


一切正常。当我使用逐步单击(Visual Studio中为F10)时,它运行良好。但是当我正常运行它之后

k=Convert.ToChar(Console.Read());


当我提供“ k”时,程序将按预期停止。
当我什么都不做的时候

 foreach (int q in tablica)
        {
            Console.Write(q);
            Console.Write(", ");
        }
        k = Convert.ToChar(Console.Read()) ;
        Console.WriteLine("\n\n\n");


两次,当我提供除“ k”以外的任何东西时,它将执行三次。搞什么鬼。

最佳答案

Console.Read一次从输入流(doc)中读取一个字符。当您按Enter键时,您将提供两个字符:\r,然后是\n,因此在暂停供进一步的用户输入之前,需要阅读两个字符。

当您使用F10来查看正在循环的内容时,我感到困惑。我只是碰巧在提供“无”时使用Enter并看到了字符弹出。

关于c# - Foreach本身会加倍或三倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148564/

相关文章:

c# - Redis 在 .net MVC 中压缩字符串值

java - Java 与 C# 中的事件处理

c# - SQL 服务器 Microsoft.Data.SqlClient.SqlException (0x80131904) : Execution Timeout Expired on azure

java - 用于排序整数的 compareTo 方法

c# - 在 C# 中的文本框中粘贴限制

c# - 如何在 C# .Net 应用程序中正确存储状态

c# - 字符串格式 : scale and precision from String. 格式

c# - MediaCapture.StartPreviewToCustomSinkAsync 方法如何工作?

javascript - 数组列表的排序问题

python - 从 numpy 数组中获取素数