我可以假设IList<T>
中的元素的顺序保持不变,当我将其用作BindingSource
的DataSource
(Windows窗体)时,{{1}和BindingSource.Position
在同一个对象上是等价的吗?
这对我很重要,因为List.IndexOf()
的列表不支持Find
,因此我使用普通的旧BindingList
方法来确定元素的位置:< / p>
IList.IndexOf
显然这很好用。但我不知道我是否还不知道我是否真的可以依靠这个来工作。我有点担心,因为myBindingSource.Position = myItemList.IndexOf(myItem);
的{{1}}属性将数据复制到新的列表结构中(参见DataSource
备注)......
干杯,马蒂亚斯
答案 0 :(得分:1)
是的,IList<T>
应始终保持相同的顺序。这是超出IEnumerable<T>
(在附加功能方面)的一步,它不保证排序,只能枚举集合。 IList<T>
添加了索引以支持更多功能,例如需要建立索引的.IndexOf()
和.RemoveAt()
。
现在,无论您填充IList<T>
的数据源是否以相同的顺序返回项目,这都是另一个故事。