是否有要创建然后添加到集合的 C# 习惯用法

本文关键字:集合 习惯 惯用法 添加 创建 然后 是否 | 更新日期: 2023-09-27 18:36:40

>假设我有这个:

private list<myClass> myCollection;

有没有一个编程习惯用来将这个非常常见的语句组合缩短为一个语句?

   if (myCollection == null)
      myCollection = new list<myCollection>();
   myCollection.Add(someInstanceOfMyClass);

成语可以描述为"必要时创建,然后添加"

蒂亚。

是否有要创建然后添加到集合的 C# 习惯用法

为什么不简单地在声明中创建?

private readonly List<myClass> myCollection = new List<myCollection>(); 

实例化单个列表不是耗时或内存的事情。(如果您有数千个这样的并且想要延迟实例化,可能会有所不同)。

你可以做这样的东西:

private List<myClass> myCollection { get {
   if (_myCollection == null) _myCollection = new List<myCollection>();
   return _myCollection;
}}
private List<myClass> _myCollection;

然后后来:

myCollection.Add(someInstance);

这将调用 getter,它检查 null。

但最好按照米奇·惠特的答案创建一次列表