如何水平打印数组的内容?

tom*_*tom 67 .net c# arrays

为什么控制台窗口不是水平而不是垂直打印数组内容?

有办法改变吗?

如何以水平方式而不是垂直方式显示数组内容Console.WriteLine()

例如:

int[] numbers = new int[100]
for(int i; i < 100; i++)
{
    numbers[i] = i;
}

for (int i; i < 100; i++) 
{
    Console.WriteLine(numbers[i]);
}
Run Code Online (Sandbox Code Playgroud)

Dir*_*mar 121

您可能正在使用Console.WriteLine打印阵列.

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.WriteLine(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)

如果您不希望在单独的行中使用每个项目Console.Write:

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.Write(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)

string.Join<T>(在.NET Framework 4或更高版本中):

int[] array = new int[] { 1, 2, 3 };
Console.WriteLine(string.Join(",", array));
Run Code Online (Sandbox Code Playgroud)

  • 最后一个例子只适用于字符串数组,不是吗? (5认同)

Lar*_*rry 29

我会建议 :

foreach(var item in array)
  Console.Write("{0}", item);
Run Code Online (Sandbox Code Playgroud)

如上所述,除非一个项目是异常,否则不会引发异常null.

Console.Write(string.Join(" ", array));
Run Code Online (Sandbox Code Playgroud)

如果数组是a,那将是完美的 string[]


Jus*_*ner 18

通过阵列只是环和编写使用的项目到控制台Write,而不是WriteLine:

foreach(var item in array)
    Console.Write(item.ToString() + " ");
Run Code Online (Sandbox Code Playgroud)

只要您的商品没有任何换行符,就会生成一行.

...或者,正如Jon Skeet所说,为你的问题提供更多的背景.


Aar*_*man 6

如果您需要漂亮地打印数组数组,可以使用以下方法:Pretty Print Array of Arrays in .NET C#

public string PrettyPrintArrayOfArrays(int[][] arrayOfArrays)
{
  if (arrayOfArrays == null)
    return "";

  var prettyArrays = new string[arrayOfArrays.Length];

  for (int i = 0; i < arrayOfArrays.Length; i++)
  {
    prettyArrays[i] = "[" + String.Join(",", arrayOfArrays[i]) + "]";
  }

  return "[" + String.Join(",", prettyArrays) + "]";
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

[[2,3]]

[[2,3],[5,4,3]]

[[2,3],[5,4,3],[8,9]]
Run Code Online (Sandbox Code Playgroud)


Ela*_*ode 5

下面的解决方案是最简单的一种:

Console.WriteLine("[{0}]", string.Join(", ", array));
Run Code Online (Sandbox Code Playgroud)

输出:[1, 2, 3, 4, 5]

另一个简短的解决方案:

Array.ForEach(array,  val => Console.Write("{0} ", val));
Run Code Online (Sandbox Code Playgroud)

输出:1 2 3 4 5。或者,如果您需要添加 add ,,请使用以下命令:

int i = 0;
Array.ForEach(array,  val => Console.Write(i == array.Length -1) ? "{0}" : "{0}, ", val));
Run Code Online (Sandbox Code Playgroud)

输出:1, 2, 3, 4, 5