AdvancedLauncher.SDK.Management.Commands.AbstractCommand.PrintTable C# (CSharp) Метод

PrintTable() защищенный Метод

Prints data in table view.
protected PrintTable ( List ColumnNames ) : List
ColumnNames List List of column headers
Результат List
        protected List<string> PrintTable(List<string> ColumnNames, params List<string>[] columns)
        {
            int[] lenghts = new int[ColumnNames.Count];
            for (int i = 0; i < ColumnNames.Count; i++) {
                lenghts[i] = columns[i].Max(c => c.Length);
                if (lenghts[i] < ColumnNames[i].Length) {
                    lenghts[i] = ColumnNames[i].Length;
                }
                lenghts[i] = lenghts[i] + 2;
            }

            List<string> output = new List<string>();
            StringBuilder recordBuilder = new StringBuilder(" ");
            for (int columnName = 0; columnName < ColumnNames.Count; columnName++) {
                string value = ColumnNames[columnName];
                recordBuilder.Append(value);
                int spaceleft = lenghts[columnName] - value.Length;
                while (spaceleft > 0) {
                    recordBuilder.Append(" ");
                    spaceleft--;
                }
            }
            output.Add(recordBuilder.ToString());
            recordBuilder = new StringBuilder("");
            for (int i = 0; i < lenghts.Sum(); i++) {
                recordBuilder.Append("-");
            }
            output.Add(recordBuilder.ToString());

            for (int record = 0; record < columns[0].Count; record++) {
                recordBuilder = new StringBuilder(" ");
                for (int column = 0; column < columns.Length; column++) {
                    string value = columns[column][record];
                    recordBuilder.Append(value);
                    int spaceleft = lenghts[column] - value.Length;
                    while (spaceleft > 0) {
                        recordBuilder.Append(" ");
                        spaceleft--;
                    }
                }
                output.Add(recordBuilder.ToString());
            }
            return output;
        }