From 3dff0daf900445f6923e439add501c12b5fa0d29 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Tue, 29 Aug 2017 15:13:17 -0400 Subject: [PATCH] Nicer tables --- ICD.Common.Utils/TableBuilder.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/ICD.Common.Utils/TableBuilder.cs b/ICD.Common.Utils/TableBuilder.cs index 2a778bd..a10ad03 100644 --- a/ICD.Common.Utils/TableBuilder.cs +++ b/ICD.Common.Utils/TableBuilder.cs @@ -14,6 +14,7 @@ namespace ICD.Common.Utils { private const char HORIZONTAL = '-'; private const char VERTICAL = '|'; + private const char INTERSECT = '+'; private readonly List m_Rows; private readonly SafeCriticalSection m_RowsSection; @@ -180,12 +181,22 @@ namespace ICD.Common.Utils builder.AppendLine(); } - private static void AppendSeparator(StringBuilder sb, ICollection columnWidths) + private static void AppendSeparator(StringBuilder sb, IList columnWidths) { - int length = columnWidths.Sum() + (columnWidths.Count - 1) * 2; - string line = new string(HORIZONTAL, length); + for (int index = 0; index < columnWidths.Count; index++) + { + int length = columnWidths[index]; - sb.AppendLine(line); + // Subsequent columns have padding + if (index > 0) + length++; + + sb.Append(new string(HORIZONTAL, length)); + if (index < columnWidths.Count - 1) + sb.Append(INTERSECT); + } + + sb.AppendLine(); } #endregion