ObservableCollection和List
最近一直忙于工作,做的就是WindowsPhone7的开发,我们做的第一个产品也已经上线了。希望大家多提宝贵意见,产品总是在意见中不断升级的。o(∩_∩)o 地址在最下面哦。
最近用的ObservableCollection 和List比较多,就写下它们两个的区别吧。
区别它们,最简单的方法就是看看他们继承的类和接口,还有它们的方法。(学习有技巧,会让你事半功倍,效率提高。)
ObservableCollection比较简单,继承了Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
然后再看看他们的摘要
Collection<T>:为泛型集合提供基类。
INotifyCollectionChanged:将集合的动态更改通知给侦听器,例如,何时添加和移除项或者重置整个集合对象。
INotifyPropertyChanged:向客户端发出某一属性值已更改的通知。
所以再ObservableCollection这个类的方法,对数据的操作很少,重点放在了当自己本事变化的时候(不管是属性,还是集合)会调用发出通知的事件。(一般用于更新UI,当然也可以用于写其他的事情。这个以后会写)
List就比较多了,继承了IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable。
IList<T>:表示可按照索引单独访问的一组对象。
ICollection<T>:定义操作泛型集合的方法。
IEnumerable<T>:公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。
IList:表示可按照索引单独访问的对象的非泛型集合。
ICollection:定义所有非泛型集合的大小、枚举器和同步方法。
IEnumerable:公开枚举器,该枚举器支持在非泛型集合上进行简单迭代。
--------------------------------------------------------------------分界线---------------------------------------------------------------
然后随便做个demo看看效果。
xaml页面很简单,托2个listbox分别用来绑定ObservableCollection和List
运行程序点击添加书籍按钮
然后只有ObservableCollection的有添加。表示当集合对象的集合改变时,只有ObservableCollection会发出通知更新UI。
这只是他们两个区别之一。
综上所述:
ObservableCollection表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。
List表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。(大部分操作用Linq,很强大也很方便。)
--------------------------------------------------------------------分界线---------------------------------------------------------------
顺便做下广告:
还没毕业就能做自己喜欢的工作,表示灰常鸡动。也出了第一个产品。
应用市场地址:http://windowsphone.com/s?appid=842303d9-b04e-4e36-a250-9554dfeb9a38(域名必须是zh-cn)
其他市场:http://ntexe.com/20999.html
目前只针对大陆用户希望大家给与多多支持。