c# – 为什么LINQ无法将DataRows添加到DataTable?
发布时间:2020-12-15 21:25:56 所属栏目:百科 来源:网络整理
导读:将ExpandoObjects鞋拔成网格,就像下面的两次尝试一样. 这不起作用: var data = _d.Querydynamic(_script); // returns IEnumerableExpandoObjectIDictionarystring,object c = (IDictionarystring,object)data.FirstOrDefault();DataTable dt = new DataTab
将ExpandoObjects鞋拔成网格,就像下面的两次尝试一样.
这不起作用: var data = _d.Query<dynamic>(_script); // returns IEnumerable<ExpandoObject> IDictionary<string,object> c = (IDictionary<string,object>)data.FirstOrDefault(); DataTable dt = new DataTable(); dt.BeginLoadData(); dt.Columns.AddRange(c.Keys.Select(k => new DataColumn(k)).ToArray()); data.Select(r => dt.Rows.Add((r as IDictionary<string,object>).Values.ToArray())); dt.EndLoadData(); 但这样做: dt.Columns.AddRange(c.Keys.Select(k => new DataColumn(k)).ToArray()); foreach (IDictionary<string,object> r in data) dt.Rows.Add(r.Values.ToArray()); 为什么? 解决方法
选择方法
所以这个选择永远不会执行: data.Select(r => dt.Rows.Add((r as IDictionary<string,object>).Values.ToArray())); 参考http://msdn.microsoft.com/ru-ru/library/bb548891.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |