我找到了这段代码,但即使在我尝试了很多转换后,它仍然无法正常工作。基本上它巧妙地将Datatable转换为可序列化的List。通用类型的Linq类型转换
的错误在于,它无法转换Dictionary<string, object>
到List<object>
:
public GridBindingData GetSomething() {
DataTable dt = GetDatatable();
var columns = dt.Columns.Cast<System.Data.DataColumn>();
var data = dt.AsEnumerable()
.Select(r => columns.Select(c => new { Column = c.ColumnName, Value = r[c] })
.ToDictionary(i => i.Column, i => i.Value != System.DBNull.Value ? i.Value : null))
.ToList<object>();
return new GridBindingData() { Data = data , Count = dt.Rows.Count };
}
我试过很多的转换包括:
List<object> newdata = (List<object>)data.AsEnumerable().Cast<object>();
Basicaly,GridBindingData的数据属性必须有一个List<object>
。那可能吗?
我猜这是一个Telerik的网格。有趣的是,[GridBindingData.Data属性的文档](http://www.telerik.com/help/aspnet-ajax/p_telerik_web_ui_gridbindingdata_data.html)没有提及它的类型(原文如此),但[构造函数确实需要一个'列表
是的,它用于telerik网格,围绕客户端绑定web服务。说实话,我不想手动将每个Datatable写入类或动态类型。如果这可以作为张贴摘录声明的作者,那么将它称为给它一张表格是一个完美的方式。 –
我没有看到问题(请参阅我的更新回答)。你得到的是什么错误? – sehe