C#(泛型集合的使用)

1、泛型集合绑定数据源到DataGridView:
    在DataGridView中需要显示需要的数据的话可以在代码中绑定数据源来实现 ,要注意的是绑定泛型集合到DataGridView数据源中和    DataSet绑定有一点不相同。使用DataSet作为DataGridView的数据源的时候只需要直接给DataGridView的DataSource属性赋值即可。如果需要刷新数据的话只要再给DataGridView的DataSource属性赋值即可。而使用泛型集合作为DataGridView的数据源的时候刷新则不能和使用DataSet作为数据源刷新的操作一样,根据本人的经验有两种方法可以实现:一种是使用this.dataGridView1.DataSource = new BindingList<"集合类型">(“集合”)   。还有一种就是在绑定数据源的时候实例化出一个空的泛型集合,再绑定数据源,然后给空的泛型集合赋值,最后再绑定一次数据源,这样也同样能够达到刷新DataGridView中的数据的效果。
    例子1: 图片
    
    例子2: 图片
2:将
Dictionary集合中的Values绑定到DataGridView中:
    Dictionary中的数据不能直接绑定到DataGridView中。Dictionary集合跟List集合不同,如果一定要把Dictionary集合中的Values绑定到DataGridView中的话,有一下两种办法:
    (1): 使用
BindingSource 对象来绑定数据源。具体如下:
图片 
object是所有的基类,可以换其它具体的数据类型
(2):把Dictionary中的Values转换问List集合,再进行数据源的绑定 。如下:
图片 
    以上两种方法适合大部分Dictionary集合 。但是如果把这个Dictionary集合运用到多态里面的时候就不行了,就算这样用上面的两种方法搞定后只能显示父类的东西,子类的一个也不会给你显示。如果硬要把这个Dictionary集合绑定到DataGridView中的话,那只有一种办法了。用循环读取Dictionary集合中Values中的数据然后添加到DataTable中,然后绑定到DataGridView的数据源。
图片 
这样子就已经吧Dictionary中的数据转换成DataTable了。现在只要用个DataTable类型的变量来接受这转换出来的数据,然后绑定到DataGridView的数据源 这样就OK了。如下图
图片
好了,这样就基本搞定了。 

原文地址:https://www.cnblogs.com/BrightMoon/p/2923293.html