79 votes

Comment puis-je imprimer le contenu d'un tableau horizontalement ?

Pourquoi la fenêtre de la console n'imprime-t-elle pas le contenu du tableau horizontalement plutôt que verticalement ?

Y a-t-il un moyen de changer ça ?

Comment puis-je afficher le contenu de mon tableau horizontalement au lieu de verticalement, avec un Console.WriteLine() ?

Par exemple :

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

for (int i; i < 100; i++)
{
    Console.WriteLine(numbers[i]);
}

135voto

0xA3 Points 73439

Vous utilisez probablement Console.WriteLine pour imprimer le tableau.

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

Si vous ne voulez pas avoir tous les éléments sur une ligne séparée, utilisez Console.Write :

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

ou string.Join<T> (dans .NET Framework 4 ou version ultérieure) :

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

30voto

Larry Points 6257

Je suggérerais :

foreach(var item in array)
  Console.Write("{0}", item);

Comme écrit ci-dessus, sauf qu'il ne soulève pas d'exception si un élément est null.

Console.Write(string.Join(" ", array));

serait parfait si le tableau est un string[].

19voto

Justin Niessner Points 144953

Il suffit de boucler le tableau et d'écrire les éléments sur la console en utilisant Write au lieu de WriteLine :

foreach(var item in array)
    Console.Write(item.ToString() + " ");

Tant que vos articles n'ont pas de sauts de ligne, cela produira une seule ligne.

...ou, comme Jon Skeet l'a dit, fournir un peu plus de contexte à votre question.

6voto

Aaron Hoffman Points 2696

Si vous avez besoin d'imprimer un tableau de tableaux, quelque chose comme ça pourrait fonctionner : 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) + "]";
}

Exemple de sortie :

[[2,3]]

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

[[2,3],[5,4,3],[8,9]]

4voto

Wael Abbas Points 2055

La solution ci-dessous est la plus simple :

Console.WriteLine("[{0}]", string.Join(", ", array));

Sortie : [1, 2, 3, 4, 5]

Une autre solution courte :

Array.ForEach(array,  val => Console.Write("{0} ", val));

Sortie : 1 2 3 4 5. Ou si vous avez besoin d'ajouter ,, utilisez ce qui suit :

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

Sortie : 1, 2, 3, 4, 5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X