DataTable 行转列

来源:互联网 发布:php接收post数组 编辑:程序博客网 时间:2024/06/05 00:29

要转的DataTable结构如下图:


        private DataTable ConvertDataTable(DataTable dtSrc)        {            try            {                DataTable dt = new DataTable();                dt.Columns.Add("姓名");                var columns = (from p in dtSrc.Rows.Cast<DataRow>() select p[1].ToString()).Distinct();                foreach (var item in columns) dt.Columns.Add(item);                var data = from k in source.Rows.Cast<DataRow>()                           group k by k[0] into m                           select new { Key = m.Key.ToString(), Items = m };                data.ToList().ForEach(n =>                {                    string[] array = new string[dt.Columns.Count];                    array[0] = n.Key;                    for (int i = 1; i < dt.Columns.Count; i++)                        array[i] = (from p in n.Items                                    where p[1].ToString() == dt.Columns[i].ToString()                                    select p[2].ToString())                                   .SingleOrDefault();                    dt.Rows.Add(array);                });                return dt;            }            catch            {                return null;            }        }

转后结果如下图:


每天进步一点点

原创粉丝点击