您可以创建一个值类型集合(所以一个struct MyCollection<T> : IEnumerable<T>),但是它几乎是无用的(因为您可以将其设为只读,这很简单,或者可以尝试使其可变,但是很难做到)使它成为“值类型”可复制,以便该集合的副本是与原始对象不同的实体)(请注意,它仍然几乎是无用的,因为如果通过值类型的接口使用一个值类型,通常装箱)。所以最后,不要 :-)
我记得的所有.NET“股票”集合都是引用类型。所以阵列,List<>,ArrayList,Dictionary<,>,...