dec*_*uet 4 c# list observablecollection
有没有办法初始化ObservableCollection<T>
你可以的容量List<T>
?
例如:
var observableCollection = new ObservableCollection<int>(100);
Run Code Online (Sandbox Code Playgroud)
不,那里没有.采用a 的构造函数之一,所以你可能认为你可以这样做:ObservableCollection<T>
List<T>
new ObservableCollection<int>(new List<int>(100));
Run Code Online (Sandbox Code Playgroud)
但这不起作用.在内部,ObservableCollection
复制列表,不考虑列表中的任何容量属性.您可以通过使用.NET Reflector查看构造函数来验证这一点.
小智 1
这是一个老问题了。但是,我认为可能值得知道的是,目前可以设置支持列表容量,但存在依赖内部实施的风险。
基类公开的 Items 属性Collection<T>
当前实现为List<T>
. 通过类型转换,您可以设置该属性的容量。
List<T>
请注意,这确实依赖于和类的当前实现ObservableCollection<T>
。如果您能够设置支持容量并且不用担心 .NET 实现会发生变化(例如,将支持列表更改为 Dictionary 或 HashSet),那么您应该创建一个新类来实现所需的接口。
您可以使用Microsoft 参考源以及.NET Reflector。
归档时间: |
|
查看次数: |
4459 次 |
最近记录: |