这是我第一次使用C#.有人能给我推荐更好的方法或我的优化代码吗

  • 本文关键字:更好 方法 优化 代码 第一次 c#
  • 更新时间 :
  • 英文 :


这个片段从用户那里获得一个列表并显示它。有人能告诉我们如何在一行中显示列表中的所有元素吗。

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.");
}

最新更新