using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Utility { public static class DebugString { public static string ToDebugString(this DataTable dataTable) { var output = new StringBuilder(); var columnsWidths = new int[dataTable.Columns.Count]; // Get column widths foreach (DataRow row in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { var length = row[i].ToString().Length; if (columnsWidths[i] < length) columnsWidths[i] = length; } } // Get Column Titles for (int i = 0; i < dataTable.Columns.Count; i++) { var length = dataTable.Columns[i].ColumnName.Length; if (columnsWidths[i] < length) columnsWidths[i] = length; } // Write Column titles for (int i = 0; i < dataTable.Columns.Count; i++) { var text = dataTable.Columns[i].ColumnName; output.Append("|" + PadCenter(text, columnsWidths[i] + 2)); } output.Append("|\n" + new string('=', output.Length) + "\n"); // Write Rows foreach (DataRow row in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { var text = row[i].ToString(); output.Append("|" + PadCenter(text, columnsWidths[i] + 2)); } output.Append("|\n"); } return output.ToString(); } private static string PadCenter(string text, int maxLength) { int diff = maxLength - text.Length; return new string(' ', diff / 2) + text + new string(' ', (int)(diff / 2.0 + 0.5)); } public static string ToDebugString(this IDictionary dictionary) { return "{" + string.Join(",", dictionary.Select(kv => kv.Key.ToString() + "=" + kv.Value.ToString()).ToArray()) + "}"; } public static string ToDebugString (this IList list) { return "{" + string.Join(",", list.ToArray()) + "}"; } public static string ToDebugString (this HashSet list) { return "{" + string.Join(",", list.ToArray()) + "}"; } public static string ToDebugString(this DateTime dateTime) { return dateTime.ToString("yyyy-MM-dd HH:mm:ss"); } public static string ToDebugString(this byte[] bytes) { var sb = new StringBuilder("new byte[] { "); foreach (var b in bytes) { sb.Append(b + ", "); } sb.Append("}"); return sb.ToString(); } public static string ToDebugString (this IEnumerable list) { return "{" + string.Join(",", list.ToArray()) + "}"; } } }
GooglePrettify
2019年6月26日 星期三
To Debug String
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言