Dotnet 4.5引入了ReadOnlyCollection。我的问题是它的实际用途是什么?我们可能需要哪种场景这种数据结构?
答案 0 :(得分:1)
当您的API向收集者返回集合对象时,您需要只读集合,复制过于昂贵,并且您希望远离返回IEnumerable<T>
。在需要对返回的集合进行随机访问的情况下,这通常是理想的。
答案 1 :(得分:1)
当您想要返回调用者无法修改的集合时,您仍然希望保证IList
提供IEnumerable
,例如IEnumerable
。一个免费的.Count属性,一个索引器以及多次安全迭代它的能力,这些都不能保证{{1}}。
答案 2 :(得分:0)
此类在多线程应用程序中很有用。在多线程环境中,拥有一组对象可能是一个真正的问题,这可能会被其他一些线程所改变。这确保了线程安全并降低了代码的复杂性。