Esempio n. 1
0
        public static void ListMultiColumn <T>(IEnumerable <T> input, PrettyFormatter <T> formatter = null)
        {
            formatter = formatter ?? new PrettyFormatter <T>();
            var values         = input.Select(x => x).ToArray();
            var maxValueLength = values.Max(x => formatter.GetName(x).Length);
            var maxCellLength  = maxValueLength + 2;
            var consoleWidth   = Console.WindowWidth - 1;
            var columnsPerRow  = consoleWidth / maxCellLength;

            if (columnsPerRow <= 1)
            {
                ListSingleColumn(values, formatter);
                return;
            }
            var rowCount = (values.Length + columnsPerRow - 1) / columnsPerRow;

            for (var row = 0; row < rowCount; row++)
            {
                for (var column = 0; column < columnsPerRow; column++)
                {
                    var i = column * rowCount + row;
                    if (i < values.Length)
                    {
                        Console.CursorLeft = column * maxCellLength;
                        var value = values[i];
                        using (new ConsoleColorSwitch().To(formatter.GetForeground(value), formatter.GetBackground(value))) {
                            Console.Write(formatter.GetName(value));
                        }
                    }
                }
                Console.WriteLine();
            }
        }
Esempio n. 2
0
 public static void ListSingleColumn <T>(IEnumerable <T> input, PrettyFormatter <T> formatter = null)
 {
     formatter = formatter ?? new PrettyFormatter <T>();
     foreach (var value in input.OrderBy(x => formatter.GetName(x)))
     {
         using (new ConsoleColorSwitch().To(formatter.GetForeground(value), formatter.GetBackground(value))) {
             Console.Write(formatter.GetName(value));
         }
         Console.WriteLine();
     }
 }
Esempio n. 3
0
 public static void List <T>(IEnumerable <T> input, PrettyFormatter <T> formatter = null)
 {
     if (input.Count() > 5)
     {
         ListMultiColumn(input, formatter);
     }
     else
     {
         ListSingleColumn(input, formatter);
     }
 }