当前所在的公司偏好使用 Collection<T>(System.Collections.ObjectModel), 这货比起List<T>不只少了不少实用方法, 并且还有一个坑
它的一个构造函数支持传入IList实例
Collection<T>(IList<T>)
使用这个构造函数建立出来的Collection实例, 竟然要影响原来的IList实例
MSDN的描述为: Initializes a new instance of the Collection<T> class as a wrapper for the specified list.
意思是: 建立了IList实例的一个包装类实例app
var c1 = new Collection<string>(); c1.Add("A"); var c2 = new Collection<string>(c1); // Collection也实现了IList接口 c2.Remove(c2.First()); Console.WriteLine(c2.Count); // 输出 0