private static void FillDataTable(DataTable obj, HtmlNode table) { #if NET20 var body = 0 != IEnumerableExtensionMethods.Count(table.Descendants("thead")) ? IEnumerableExtensionMethods.First(table.Descendants("tbody")) : table; var rows = IEnumerableExtensionMethods.ToList(body.Descendants("tr")); #else var body = table.Descendants("thead").Any() ? table.Descendants("tbody").First() : table; var rows = body.Descendants("tr").ToList(); #endif if (HasVerticalColumns(table)) { AddVerticalDataColumns(obj, body); AddVerticalDataRows(obj, body); return; } var columns = Columns(table); for (var i = 0; i < columns.Count; i++) { #if NET20 || NET35 var name = string.IsNullOrEmpty(columns[i]) #else var name = string.IsNullOrWhiteSpace(columns[i]) #endif ? XmlConvert.ToString(i) : columns[i]; obj.Columns.Add(name, typeof(HtmlNode)); } AddNormalDataRows(obj, rows); }