C# 显示数组单元格后提示用户输入的问题

C# 显示数组单元格后提示用户输入的问题,c#,C#,我正试图编写一个小程序,在数组中的每个项目打印到屏幕上后,收集用户的响应 我可以按如下方式打印阵列中的每个项目: string[] music = new string[4]; music[0] = "question 1"; music[1] = "question 2"; music[2] = "question 3"; music[3] = "question 4"; foreach (string j in music) { Console.WriteLine(j); } 但

我正试图编写一个小程序,在数组中的每个项目打印到屏幕上后,收集用户的响应

我可以按如下方式打印阵列中的每个项目:

string[] music = new string[4];
music[0] = "question 1";
music[1] = "question 2";
music[2] = "question 3";
music[3] = "question 4";

foreach (string j in music)
{
    Console.WriteLine(j);
}
但我不知道如何捕捉用户的输入


例如,在用户显示“问题1”后,是否有方法中断并提示用户输入?数组中的每个项都会发生这种情况。

没有理由跳出循环,您可以将该逻辑放入循环中

foreach (string j in music)
{
    Console.WriteLine(j);

    string read = Console.ReadLine(); // This blocks until the user presses 'enter'

    Console.WriteLine(read); // Just echo the response.
}
当然,您也可以调用一个单独的方法来收集和处理响应,这可能是一种更干净的方法,具体取决于您需要对响应进行多少处理

这实际上取决于您希望如何使用响应,以及是否希望一次查看所有响应,我不知道您是否已经了解了类型,但这可能是存储映射响应的一种好方法

Dictionary<string, string> responses = new Dictionary<string, string>();

foreach (string j in music)
{
    Console.WriteLine(j);

    string read = Console.ReadLine(); // This blocks until the user presses 'enter'

    responses[j] = read;
}

你所说的“循环数组”到底是什么意思?如果不将问题格式化成段落以便于阅读,然后提供一个你希望实现的示例(伪代码,甚至是清晰的句子),你就不可能得到一个好的答案。是的,这可能是一个很好的观点。抱歉,此站点是新的。我的意思是使用for循环显示数组的元素。数组的每一个元素都是一个问题,我想在之后提示用户回答。我甚至不确定这是否可能。就像我说的,我对编程很陌生。我添加的编辑是否改善了问题?我删掉了大部分填充内容,只是问我想弄明白什么。没问题,欢迎来到这个网站!毫无疑问,要习惯如何提问,需要一些时间。我也做了一些编辑。我认为你编辑的版本很好,但是很多人被以代码块开头的问题吓跑了。但是,是的,我已经投票决定重新开始这个问题,并取消了投票。只需在Console.WriteLine之后添加Console.ReadLine,程序就会停止并等待用户输入。遗憾的是,我还没有学会字典。我要做的是检查这些回答是否正确。我最初的想法是对这些问题有另一系列的答案。所以,如果我使用for循环,并且有另一个相同大小的数组,那就可以了?@Wardy24是的!听起来应该是这样。如果你需要帮助,请告诉我,我可以用一个例子来编辑我的答案。但是我会让你先试试。我知道如何编写for循环,但是我对其余的有点不太了解。我会在for循环中执行if语句吗?if语句将音乐问题与我在另一个数组中输入的答案进行比较?谢谢你的帮助,伙计!非常大appreciated@Wardy24没问题!等等,如果我没听错的话,你是在写测验之类的东西?对吗?所以你问问题,用户回答,然后你根据预定义的期望测试他们的答案?我只是想确定我没有把你引向错误的方向。你肯定可以在一个循环中有一个
if
块,是的,没错。因此,对于每个用户输入,我需要它对照答案阅读,以检查答案是否正确。有没有办法让它循环?或者我必须写出每个if语句。对不起,如果这些是基本的问题,我还是个新手。
string[] music = new string[4];
// ... populate music

string[] expectedResponses = new string[music.Length];
// ... populate expected responses

for (int i = 0; i < music.Length; i++)
{
    string j = music[i];
    string expectedResponse = expectedResponses[i];

    string actualResponse = Console.ReadLine();
    if(actualResponse == expectedResponse) // you might want to do something about casing here
    {
        Console.WriteLine("Correct!");
    }
    else
    { 
        Console.WriteLine("Incorrect.");
    }
}