日期:2014-05-18  浏览次数:20977 次

关于List<T>的一些问题(按最优ANSWER给分)
1.如何把List<T>中的(动态)数据绑定到dataGridView中,而且两者Index是一一对应的关系 ?

2.List<T>的方法RemoveAt(i)删除索引i这一项后,Count会不会自动减一 ? 索引i后面这些元素的Index会不会自动减一 ?

3.怎么判断List<T>新加入的元素是否已存在 ??


------解决方案--------------------
1、不清楚,很久没弄DataGrid了

2 2.List <T>的方法RemoveAt(i)删除索引i这一项后,Count会不会自动减一 ? 索引i后面这些元素的Index会不会自动减一 ? 



3、List<T>.Contains(T) 确定某元素是否在 List中
------解决方案--------------------
1 DataGridView.DataSource = new BindingList<T>(List<T>);
List<T> modelList=new List<T>((BindingList<T>)this.DataGridView.DataSource);
3 通过Contains判断是否存在数据
http://blog.csdn.net/aladdinty/archive/2008/12/11/3494357.aspx
------解决方案--------------------
2. List <T>的方法RemoveAt(i)删除索引i这一项后,Count会不会自动减一 ? 索引i后面这些元素的Index会不会自动减一 ?
会自动减一,List<L>只适合对数据的保存,而对它的查看不是很方便 ,在此我建议使用Dictionary<K,V>.
------解决方案--------------------
我更喜欢用ILIST<T>或者Dictionary<K,V>
1、DataGridView.DataSource = ILIST<T>对象是可以的,我想LIST<T>也应该可行
2、会
3、Contains方法
------解决方案--------------------
1.如何把List <T>中的(动态)数据绑定到dataGridView中,而且两者Index是一一对应的关系 ?
答:DataGridView.DataSource =对象名(LIST <T>对象名),二者之间的关系不会是一一对应的,如果你使用List<T>后台是数据库那么List<T>中的排序是按照数据库中数据的排序去排序的。
2.List <T>的方法RemoveAt(i)删除索引i这一项后,Count会不会自动减一 ? 索引i后面这些元素的Index会不会自动减一 ? 
List <T>的方法RemoveAt(i)删除索引i这一项后,Count会自动减一,索引i后面这些元素的Index也会自动减一 。
3、List <T>.Contains(T) 确定某元素是否在 List中
使用Contains方法,会哦这你自己去定义一个方法来来判断方法!
------解决方案--------------------
探讨
List <T> .Contains()括号里的参数是不是要检验的往List <T> 里新加入的元素 ??

为什么我这么做不行啊,永远是false....

------解决方案--------------------
1:有点模糊了,不能回答你,对不起了。
2:List <T>的方法RemoveAt(i)删除索引i这一项后,Count后的索引也会减少一,它会重新分配的。例如集合中有3个元素,你删除一个索引为0的和一个索引为1的后,在删除索引为2的它就会报错了。
3:用集合的count属性,打印出个数之后再添加,然后再打印出个数看个数的变化就知道有没有添加成功了 。