web-dev-qa-db-ger.com

Wie kann ich den Inhalt des Arrays horizontal drucken?

Warum druckt das Konsolenfenster den Inhalt des Arrays nicht horizontal, sondern vertikal?

Gibt es eine Möglichkeit, das zu ändern?

Wie kann ich den Inhalt meines Arrays mit einer Console.WriteLine() horizontal statt vertikal anzeigen?

Zum Beispiel:

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

Sie verwenden wahrscheinlich Console.WriteLine zum Drucken des Arrays. 

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

Wenn Sie nicht jeden Artikel in einer separaten Zeile haben möchten, verwenden Sie Console.Write:

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

oder string.Join<T> (in .NET Framework 4 oder höher):

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

Ich würde vorschlagen :

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

Wie oben geschrieben, außer es wird keine Ausnahme ausgelöst, wenn ein Element null ist.

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

wäre perfekt, wenn Array ein string[] ist

27
Larry

Schleifen Sie einfach durch das Array und schreiben Sie die Elemente mit Write anstelle von WriteLine in die Konsole.

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

Solange Ihre Artikel keine Zeilenumbrüche haben, wird eine einzelne Zeile erzeugt.

... oder, wie Jon Skeet gesagt hat, etwas mehr Kontext zu Ihrer Frage hinzufügen.

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();


        }
    }
}

Dies ist die Ausgabe

#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

Wenn Sie ein Array von Arrays drucken müssen, könnte etwas davon funktionieren 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) + "]";
}

Beispielausgabe:

[[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

Console.Write funktioniert nur, wenn der Thread der einzige Thread ist, der in die Console schreibt. Andernfalls kann Ihre Ausgabe mit anderen Ausgaben durchsetzt werden, die Zeilenumbrüche sowie andere unerwünschte Zeichen einfügen können. Verwenden Sie Console.WriteLine, um einen String zu schreiben, um sicherzustellen, dass Ihr Array intakt gedruckt wird. Die meisten Arrays von Objekten können horizontal gedruckt werden (abhängig von der ToString () - Methode des Typs), wobei der vor .NET 4.0 nicht generische Join verwendet wird:

        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

Die folgende Lösung ist die einfachste

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

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

Noch eine kurze Lösung

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

Ausgabe: 1 2 3 4 5, oder wenn Sie hinzufügen müssen, fügen Sie , hinzu

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

Ausgabe: 1, 2, 3, 4, 5

0
ElasticCode