Genel

C# Dictionary to HTML Table

Dotnet dictionary nesnesinden html table üretme örneğini not ediyorum. Özellikler döküman oluştururken veya mail içerisine eklerken gereksinim duyulabiliyor.

public static class DictionaryToHtmlTable {
        public static string DataHtmlTable(object record) {
            var rec = record.ToDictionary();
            var table = new StringBuilder();
            table.Append("<table style='witdh:98%;'>");
            table.Append("<tr>");
            foreach(var th in rec.Keys) {
                table.Append($"<th style='border: 1px solid gray;'>{th.Replace("_"," ")}</th>");
            }
            table.Append("</tr>");
            table.Append("<tr>");
            foreach(var td in rec.Values) {
                table.Append($"<td style='border: 1px solid gray;'>{td}</td>");
            }
            table.Append("</tr>");
            table.Append("</table>");
            return table.ToString();
        }

        public static Dictionary<string, object> ToDictionary(this object obj) {
            var dictionary = JObject.FromObject(obj).ToObject<Dictionary<string, object>>();
            return dictionary;
        }
    }

Kullanımına bir örnek aşağıdaki gibi olabilir.

string MailHtml = DictionaryToHtmlTable.DataHtmlTable(mydataObject);
smtp.Send(MailHtml);