title: Asigning value to property which returns never null
body: <p>I have a property</p>
  
  <pre><code>public static List&lt;int&gt; intItems
  {
      get { return _intItems ?? new List&lt;int&gt;(); }
      set { _intItems = value; }
  }
  private static List&lt;int&gt; _intItems;
  </code></pre>
  
  <p>which is relyable never null. But when I <code>Add</code> a value to it it doesn't work.</p>
  
  <pre><code>intItems.Add(1);
  Console.WriteLine(intItems.First()); //indexoutofrangeexception
  </code></pre>
  
  <p>To make this work, I have to assign the value to the private field first to enable a reference access:</p>
  
  <pre><code>public static List&lt;int&gt; intItems
  {
      get
      {
          if (_intItems == null)
          {
              _intItems = new List&lt;int&gt;();
          }
          return _intItems;
      }
      set { _intItems = value; }
  }
  </code></pre>
  
  <p>My question is, is there a more elegant way then a property with 12 lines of code? I have multiple of this kind.</p>