我正在尋找一種高效的方式將數據保存到類似C#結構的表中。運行時確定每列的行數,列數和數據類型。我的方法之一是創建一個定義列的結構。該結構由ColumnName,Units和一個雙精度列表組成。 (現在我堅持一種數據類型)。然後,我爲每列實例化一個結構並填充它的列表。這種方法工作得很好,比我們嘗試過的其他方法更清潔,我可以在大約12毫秒內節省100,000行3列。 我遇到的問題是顯示數據。我能夠在datagridview中顯示我的「表」,方法是循環訪問我的列和行,然後逐個填充DGV單元格,但這並不令人驚訝,非常慢。 有沒有辦法將我的3個列表用作DGV的數據源?每列可以有它自己的數據源嗎?是我應該嘗試的DataGridView的替代方法嗎?如何使用多個List <>作爲DatagridView的數據源
回答
什麼是「3列表」在這裏?我可以看到雙打名單...如果columes是動態的,那麼實施ITypedList
可能是有用的,但我會誠實 - 這是一隻豬正確實施;填寫DataTable
會更容易。例如,我已經使用它來即時轉置數組。
如果性能是您的問題,也許切換到virtual mode?這似乎很符合你的用例。
3個列表中的每一個都代表一列。我的測試應用程序包含供用戶輸入行數和列數的文本框,我一般使用3 X 100,000。真實世界可能更像8 x 1,000,000。 我的第一次嘗試是直接將數據寫入DataTable,但是對於大量行,性能並不理想。 將我的列表內容複製到DataTable並將其用作DGV數據源比逐個單元格更快,但可能會出現其他一些challanges。 我將不得不調查ITypedList和VirtualMode。 – 2010-01-06 17:12:52
我的第一選擇是虛擬模式。如果你想的話,我有一些'ITypedList'的例子。 – 2010-01-06 19:11:27
例如,http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/ae1251a6855b9254/f5599f934a2f7043 – 2010-01-06 19:13:23
您是否嘗試先填充DataTable,然後將該DataTable綁定到DataGridView?
如果這是一個WebApplication,你可以做一個foreach語句並從代碼隱藏的表中建立一個表。
請參閱上面的註釋re:DataTable – 2010-01-06 17:21:38
- 1. 如何從一個List載入數據到datagridview <>
- 2. BindingList <T> DataGridView的數據源
- 3. 作爲數據源的Ienumerable <KeyValuePair <T, string>>。如何?
- 4. 如何從我的DataGridView中的所有數據創建一個List <>?
- 5. 如何爲綁定到List的dataGridView設置columnNames <T>?
- 6. 通用函數爲兩個List <>
- 7. 如何將兩個List <Object[]>對象合併爲一個List <Object[]>
- 8. Nullable List <>作爲輸出參數
- 9. 如何將數據錶轉換爲List <long,List <keyvaluepair <string,string >>> in C#
- 10. 如何使用IEnumerable <string>作爲List?
- 11. DATAFORMAT爲DataGridView的數據源
- 12. vb.net datagridview數據集作爲數據源
- 13. 如何使用Freemarker顯示List <Map <String,Object >>數據?
- 14. 如何將C#中的數據錶轉換爲Dictionary <string,list <object>>?
- 15. 使用列表<Item>作爲GridView中的數據源
- 16. 將數據從List <>加載到datagridview中customerlist
- 17. 字典用List <>作爲TValue
- 18. 如何使用ListView顯示List <>?
- 19. DataGridView中的錯誤 - simpel數據源,列表<generic>?
- 20. 如何使用列表<T>作爲報表的數據源?
- 21. 使用列表時使用列表的DataGridView列名稱的Intelisense <T>作爲數據源
- 22. 多個LIST <>類型的C#FOREACH
- 23. IEnumerable <T>作爲數據驅動測試的數據源
- 24. 如何將「<url>」改爲「</url>」爲List?
- 25. 如何使DataGridView在DataSource爲LIst時在WinForms中可編輯<'a>
- 26. 列表<MyClass>作爲DropDownList的數據源?
- 27. 如何實現從List <SomeParamType>到List的轉換<SomeParamType <?>>
- 28. Datagridview數據源爲空
- 29. 如何將List <IEnumerable <ProductViewModel >>轉換爲<IEnumerable <ProductViewModel >>?
- 30. 如何使用JAXB編碼映射<String,List <Objects>>
(重新發表您的評論,我爲'ITypedList'添加了一個示例,以便您可以感受它) – 2010-01-06 19:19:22