Convert IEnumerable to HTML table string
I can use reflection to solve it:

void Main()
{
    var datas = new[] { new {Name="Test1",Value="Test2"} };
    var array = datas.ToArray().ToHtmlTable(); //Run Success
    var set = datas.ToHashSet().ToHtmlTable();//Run Succes
    var list = datas.ToList().ToHtmlTable(); //Run Succes
    var enums = datas.AsEnumerable().ToHtmlTable(); //Run Succes
}

public static class HTMLTableHelper
{
    public static string ToHtmlTable&lt;T&gt;(this IEnumerable&lt;T&gt; enums)
    {
        var type = typeof(T);
        var props = type.GetProperties();
        var html = new StringBuilder("&lt;table&gt;");

        //Header
        html.Append("&lt;thead&gt;&lt;tr&gt;");
        foreach (var p in props)
            html.Append("&lt;th&gt;" + p.Name + "&lt;/th&gt;");
        html.Append("&lt;/tr&gt;&lt;/thead&gt;");

        //Body
        html.Append("&lt;tbody&gt;");
        foreach (var e in enums)
        {
            html.Append("&lt;tr&gt;");
            props.Select(s =&gt; s.GetValue(e)).ToList().ForEach(p =&gt; {
                html.Append("&lt;td&gt;" + p + "&lt;/td&gt;");
            }); 
            html.Append("&lt;/tr&gt;");
        }

        html.Append("&lt;/tbody&gt;");
        html.Append("&lt;/table&gt;");
        return html.ToString();
    }
}




&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Test1&lt;/td&gt;&lt;td&gt;Test2&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;