web-dev-qa-db-fra.com

Comment imprimer le contenu du 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 cela?

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]);
}
62
tom

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 souhaitez pas que chaque élément soit placé sur une ligne distincte, 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));
113
Dirk Vollmar

Je voudrais suggerer :

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

Comme indiqué ci-dessus, sauf qu'il ne génère pas d'exception si un élément est null.

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

serait parfait si array est un string[]

27
Larry

Parcourez simplement le tableau et écrivez 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 l'a dit Jon Skeet, donnez un peu plus de contexte à votre question.

18
Justin Niessner
foreach(var item in array)
Console.Write(item.ToString() + "\t");
3
Mac D'zen
namespace ReverseString
{
    class Program
    {
        static void Main(string[] args)
        {

            string stat = "This is an example of code" + "This code has written in C#\n\n";

            Console.Write(stat); 

            char[] myArrayofChar = stat.ToCharArray();

            Array.Reverse(myArrayofChar);

            foreach (char myNewChar in myArrayofChar)
                Console.Write(myNewChar);            // Yuo just need to write the function Write instead of WriteLine

            Console.ReadKey();


        }
    }
}

C'est la sortie

#C ni nettirw sah edoc sihTedoc fo elpmaxe na si sihT
2
Nazar Al-Wattar
    public static void Main(string[] args)
        {
            int[] numbers = new int[10];

            Console.Write("index ");

            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = i;

                Console.Write(numbers[i] + " ");

            }

            Console.WriteLine("");

            Console.WriteLine("");

            Console.Write("value ");

            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = numbers.Length - i;

                Console.Write(numbers[i] + " ");

            }

            Console.ReadKey();
        }
    }
}
1
Jer Har

Si vous avez besoin d'imprimer un tableau de tableaux, quelque chose comme ceci pourrait fonctionner http://aaron-hoffman.blogspot.com/2013/11/pretty-print-array-of-arrays-in-net-c .html

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]]
1
Aaron Hoffman
int[] n=new int[5];

for (int i = 0; i < 5; i++)
{
    n[i] = i + 100;
}

foreach (int j in n)
{
    int i = j - 100;

    Console.WriteLine("Element [{0}]={1}", i, j);
    i++;
}
1
user3404904

Utilisation de Console.Write ne fonctionne que si le fil est le seul fil écrit sur la console, sinon votre sortie peut être entrecoupée d'autres sorties pouvant ou non insérer des nouvelles lignes, ainsi que d'autres caractères non désirés. Pour vous assurer que votre tableau est imprimé intact, utilisez Console.WriteLine pour écrire une chaîne. La plupart des tableaux d'objets peuvent être imprimés horizontalement (en fonction de la méthode ToString () du type) à l'aide de la jointure non générique disponible avant .NET 4.0:

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

        //For clarity
        IEnumerable strings = numbers.Select<int, string>(j=>j.ToString());
        string[] stringArray = strings.ToArray<string>();
        string output = string.Join(", ", stringArray);
        Console.WriteLine(output);

        //OR 

        //For brevity
        Console.WriteLine(string.Join(", ", numbers.Select<int, string>(j => j.ToString()).ToArray<string>()));
0
G DeMasters

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 devez ajouter ajouter , utiliser ci-dessous

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

Sortie: 1, 2, 3, 4, 5

0
ElasticCode