#c# #arrays #console #text-alignment
Вопрос:
У меня есть этот 2d массив, который я пытаюсь распечатать с названиями штатов США сверху и слева от массива:
отпечатки, подобные этому:
У меня есть этот метод печати
public void ShowArray()
{
for (int i = 0; i < v.Length; i )
{
Console.Write("t" v[i]);
}
Console.WriteLine();
for (int i = 0; i < array.GetLength(0); i )
{
Console.Write(v[i] "t");
for (int j = 0; j < array.GetLength(1); j )
{
Console.Write(array[i,j] "t");
}
Console.WriteLine();
}
}
Ответ №1:
Падрайт/ПадЛефт FTW:
private static string[] v = new string[] { "Maine", "California", "Texas" };
private static string[,] array = new string[,]
{
{ "0", "90", "0" },
{ "90", "0", "100" },
{ "0", "0", "0" },
};
public static void ShowArray()
{
var maxLength = v.Max(s => s.Length); // <- NEW
for (int i = 0; i < v.Length; i )
{
Console.Write("t" v[i].PadLeft(maxLength));
}
Console.WriteLine();
for (int i = 0; i < array.GetLength(0); i )
{
Console.Write(v[i].PadRight(maxLength) "t");
for (int j = 0; j < array.GetLength(1); j )
{
Console.Write(array[i, j].PadRight(maxLength) "t");
}
Console.WriteLine();
}
}
выход:
Maine California Texas
Maine 0 90 0
California 90 0 100
Texas 0 0 0