Считывание матрицы и отображение в виде таблицы - проблемы с выполнением метода для нее - C#
Я пытался обойти этот метод, но результат, который я получаю, это не то, что мне нужно.
Когда программа запускается в main, я вставляю данные в массив и после этого должен иметь возможность создать таблицу, добавляя данные внутри. Проблема в том, чтобы получить действительно плохое форматирование. Может ли кто-нибудь сказать, в чем проблема метода LISTDATA<t>? А вот этого у меня нет.
Извините, если я забыл какую-то полезную информацию, и спасибо, что посмотрели.
Что я уже пробовал:
public class Program { private static void Main() { var client = new string[4, 7]; InsertData<clientheader>(client); Console.Clear(); InsertData<clientheader>(client); listData<clientheader>(client); Console.ReadKey(); } static void showHeader<t>(string[,] matrix) { string line = new String('-', 83); int[] size = new int[] { 4, 10, 10, 15, 10, 10, 15 }; Console.WriteLine(line); Console.Write("|"); for (int i = 0; i < matrix.GetLength(1) - 1; i++) { string space = new String(' ', size[i] - GetHeader<t>(i).Length); string header = GetHeader<t>(i); Console.Write($"{header.ToUpper()}{space}"); Console.Write("|"); } Console.WriteLine(); } static void listData<t>(string[,] matrix) { Console.Clear(); showHeader<t>(matrix); string line = new String('-', 83); int[] size = new int[] { 10, 15, 15, 15, 15, 15, 15 }; for (int i = 0; i < matrix.GetLength(0); i++) { Console.WriteLine(line); Console.Write("|"); for (int j = 0; j < matrix.GetLength(1) - 1; j++) { if (matrix[i, j] == null) matrix[i, j] = ""; string space = new String(' ', size[i] - matrix[i, j].Length - 1); Console.Write($"{matrix[i, j]}{space}"); Console.Write("|"); } Console.WriteLine(); } Console.WriteLine(line); } static int getInsertIndex(string[,] matrix) { for (int j = 0; j < matrix.GetLength(0); j++) { if (string.IsNullOrEmpty(matrix[j, 0])) return j; } return -1; } private static void InsertData<t>(string[,] matrix) { int n = getInsertIndex(matrix), id = 1; matrix[n, 0] = Convert.ToString(id++); int x = matrix.GetLength(1) - 1; for (var j = 1; j < matrix.GetLength(1); j++) { do { Console.Write($"\nInsert {GetHeader<t>(j)}: "); matrix[n, j] = Console.ReadLine(); } while (string.IsNullOrEmpty(matrix[0, j])); } } private static string GetHeader<t>(int i) => Enum.GetName(typeof(T), i); enum ClientHeader { Id, Name, Surname, Addres, CodPostal, Telephone, Email, State }; } }
Nelek
Что вы имеете в виду под "плохим оформлением"? Это плохой формат или плохая формация?
А чего ты ждешь? Что ты получаешь?