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]);
}
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));
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[]
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.
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();
}
}
}
C'est la sortie
#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();
}
}
}
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]]
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++;
}
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>()));
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