我找到了這段代碼,但即使在我嘗試了很多轉換後,它仍然無法正常工作。基本上它巧妙地將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