c# - 性能,用Observablecollection好还是INotifyPropertyChanged好?

标签 c# performance c#-4.0

我必须用 C# 编写一些程序,以便在我必须使用的程序之间执行 IO,或者使用 INotifyPropertyChange 的属性。 (在 List<> 上)或 ObservableCollection<> .

我想知道在c#程序之间进行IO操作哪个比较好。

感谢阅读

最佳答案

根据您在问题和评论中列出的标准,您最好使用 ObservableCollection。

INotifyPropertyChanged 接口(interface)的存在只是为了告诉您 - 属性已更改。当您谈论列表时,属性将是诸如 Count 和 Item[] 之类的东西。这意味着,实际上,您实际上被告知的只是“列表的内容已更改”,而不是关于实际更改内容的任何详细信息。如果没有任何此类信息,您的控件真正能做的就是完全根据集合的当前状态重绘自身。

但是,对于 ObservableCollection,您会被告知何时添加了一个项目(以及该项目是什么以及添加到哪里)以及何时删除了一个项目(以及该项目是什么以及它曾经所在的位置)。对于您的 UI 控件来说,这些信息足以让您只需重绘实际更改的内容,这比重绘整个内容要高效得多。这就是发明 ObservableCollection 的原因 - 使用它!

关于c# - 性能,用Observablecollection好还是INotifyPropertyChanged好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16852405/

相关文章:

c# - 是否可以使用 CSS 设计 C# 应用程序

c# - 从文件名中提取日期

c# - 使用ParseExact解析DateTime,我缺少什么?

c++ - 使用不同的符号表重新计算 Boost Spirit 解析的属性的最有效方法是什么?

c# - 使用动态关键字在c#中读取excel文件

正则表达式 - 什么时候不匹配 NewLine?

c# - 由于其在 Windows 窗体中的保护级别而无法访问

java - 在 Java 中将字符串解析为 int 的快速方法

python - 加快计算不同列的数量

c#-4.0 - 接口(interface)协方差问题