當前所在的公司偏好使用 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