MyClass[] array; List list;
一种比另一种更可取的情况是什么?为什么?
实际上,您很少会想要使用数组。绝对在List<T>您想添加/删除数据的任何时候使用,因为调整数组大小很昂贵。 如果您知道数据是固定长度的,并且出于某些非常具体 的原因(在基准测试之后)想要进行微优化,那么数组可能会很有用。
List<T>
List<T>提供 比 数组更多的功能(尽管 LINQ 稍微平衡了一点),而且几乎总是正确的选择。params当然,争论除外。;-p
params
作为计数器 -List<T>是一维的;where-因为您有矩形(等)数组,例如int[,]or string[,,]- 但是还有其他方法可以在对象模型中对此类数据(如果需要)进行建模。
int[,]
string[,,]
也就是说,我在我的protobuf-net项目中 大量 使用了数组;完全出于性能:
byte[]
BufferedStream
Foo[]
List<Foo>
但这绝对是个例外;对于一般业务线处理,List<T>每次都赢。