这个片段从用户那里获得一个列表并显示它。有人能告诉我们如何在一行中显示列表中的所有元素吗。
List<string> numbersInput = new List<string>();
Console.WriteLine("Please enter an integer: ");
string input1 = Console.ReadLine();
while (!string.IsNullOrEmpty(input1))
{
numbersInput.Add(input1);
Console.WriteLine("Please enter another integer: ");
input1 = Console.ReadLine();
}
if (numbersInput.Count > 0)
{
Console.WriteLine("You have entered " + numbersInput.Count + " numbers, they were: ");
var a = 1;
foreach (var input in numbersInput)
{
Console.WriteLine("Number " + a++ + " = t" + input);
}
}
else
{
Console.WriteLine("You have entered 0 numbers.");
}
您有几个选项:
Console.WriteLine()
输出你给它的任何字符串,并在它后面开始一行新的文本——类似于我们键入并按下回车键。
Console.Write()
输出你给它的任何字符串——不多也不少。
因此,您可以简单地将循环中的WriteLine
替换为Write
。。。
或者,您可以构建整个字符串并将其传递给WriteLine()
,类似于:
List<string> numbersInput = new List<string>();
Console.WriteLine("Please enter an integer: ");
string input1 = Console.ReadLine();
while (!string.IsNullOrEmpty(input1))
{
numbersInput.Add(input1);
Console.WriteLine("Please enter another integer: ");
input1 = Console.ReadLine();
}
if (numbersInput.Count > 0)
{
Console.WriteLine("You have entered " + numbersInput.Count + " numbers, they were: ");
var a = 1;
var s = "";
foreach (var input in numbersInput)
{
s = $"{s}, Number {a++} = t{input}"; //string interpolation only applicable post C# 7
}
Console.WriteLine(s.Trim(", "));
}
else
{
Console.WriteLine("You have entered 0 numbers.");
}
在评论中,Lasse建议使用Console.WriteLine("Numbers: " + string.Join(", ", numbersInput));
(而不是foreach
循环(,这可能更有效。。。但输出格式与您最初的问题不同。
或者,如果您想保持问题的输出格式,可以重新调整为使用Dictionary
而不是List
。例如:
Dictionary<string, string> numbersInput = new Dictionary<string, string>();
Console.WriteLine("Please enter an integer: ");
string input1 = Console.ReadLine();
var x = 1;
while (!string.IsNullOrEmpty(input1))
{
//numbersInput.Add(input1);
numbersInput.Add(input1, $"Number {x} = t{input1}");
x++;
Console.WriteLine("Please enter another integer: ");
input1 = Console.ReadLine();
}
if (numbersInput.Count > 0)
{
Console.WriteLine("You have entered " + numbersInput.Count + " numbers, they were: ");
Console.WriteLine(string.Join(", ", numbersInput.Values));
}
else
{
Console.WriteLine("You have entered 0 numbers.");
}