我正在寻找一种高效的方式将数据保存到类似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