use*_*992 2 c# performance c#-4.0
我必须在c#中创建一些程序,以便在我必须使用的程序之间执行IO,或者使用INotifyPropertyChange(on a List<>)或ObservableCollection<>.
我想知道在c#程序之间执行IO操作哪一个更好.
谢谢你的阅读
根据您在问题和评论中列出的标准,您最好使用ObservableCollection.
INotifyPropertyChanged接口存在告诉您 - 属性已更改.当您谈论列表时,属性将是Count和Item [].这意味着,实际上,您实际被告知的所有内容都是"列表中的内容已发生变化",而不是有关实际变更的详细信息.没有任何此类信息,您的所有控件都可以根据集合的当前状态完全重绘自身.
但是,使用ObservableCollection时,会告诉您何时添加项目(以及该项目是什么以及添加的位置)以及何时删除项目(以及该项目是什么以及过去的位置).这足以让您的UI控件只需重绘实际更改的内容,这比重绘整个内容要有效得多.这就是ObservableCollection被发明的原因 - 使用它!