因此,两者都ListBox.ObjectCollection实现ListView.ListViewItemCollection了IList类,它提供了Add和Remove方法,但没有AddRange, InsertRange, 或RemoveRange。但是,ListBox.ObjectCollection也ListView.ListViewItemCollection提供了一种AddRange方法——只是 noInsertRange或RemoveRange.
ArrayList另一方面,查看类,它在实现之上IList还提供AddRange、InsertRange和RemoveRange。此类和接口的通用形式List<T>(具有AddRange、InsertRange和RemoveRange)和IList<T>(仅提供Add和Remove)之间存在相同的区别。
我可以理解不提供的IList和接口等等——它只是一个接口;超出, ,等最低要求的任何内容都是可选的。但是,考虑到和类的方法的有用性,并考虑到它们对和控件的方便程度,我想知道为什么这些控件不存在它们。IList<T>AddRangeAddRemoveRemoveAt*RangeArrayListList<T>ListBoxListView
有人知道吗?和 的内部实现是否有某些东西InsertRange使这些方法在某种程度上不那么有效,更复杂,或者在其他方面不太RemoveRange适合ListBox.ObjectCollectionand ?ListView.ListViewItemCollectionAddRange
需要明确的是:我不是在寻找关于“看起来微软的某个人变得懒惰”的猜测;相反,我想知道是否有人真正知道AddRangeand InsertRange/之间的合法区别,这可能解释andRemoveRange中缺少后一种方法。ListBox.ObjectCollectionListView.ListViewItemCollection