/// <summary> /// Создать объект на основе экземпляра System.Data.DataTable /// </summary> /// <param name="dataTable"></param> /// <returns></returns> public static MercuryDataTable FromDataTable(DataTable dataTable) { var columnsNames = dataTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName).ToArray(); var rowsWithValues = dataTable.Rows.Cast <DataRow>().Select(x => x.ItemArray).ToArray(); var result = new MercuryDataTable(columnsNames, rowsWithValues); return(result); }
/// <summary> /// Десериализовать объект из формата Xml /// </summary> /// <param name="xml"></param> /// <returns></returns> public static MercuryDataTable FromXml(string xml) { var xDocument = XDocument.Parse(xml); var columns = xDocument .Element("table") .Element("columns") .Elements("column") .Select(x => x.Value) .ToArray(); var rows = xDocument .Element("table") .Elements("rows") .Elements("row") .Select(x => x.Elements("value") .Select(y => y.Value) .ToArray()) .ToArray(); var result = new MercuryDataTable(columns, rows); return(result); }