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]);
}
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));
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
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.
foreach(var item in array)
Console.Write(item.ToString() + "\t");
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
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();
}
}
}
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]]
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++;
}
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>()));
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