title: LINQ new instance when SingleOrDefault returns null
body: <p>I have this simple method:</p>
  
  <pre><code>    #region Fields
  
      private Collection&lt;Address&gt; _addresses;
  
      #endregion
  
      #region Public methods
  
      public Address DeliveryAddress()
      {
          if (_addresses == null)
              if (this.Id &gt; 0)
                  _addresses = Core.Data.Addresses.GetClient(this.Id);
  
          return _addresses.SingleOrDefault(x =&gt; x.TypeId == AddressType.Delivery);
      }
  
      public Address InvoiceAddress()
      {
          if (_addresses == null)
              if (this.Id &gt; 0)
                  _addresses = Core.Data.Addresses.GetClient(this.Id);
  
          return _addresses.SingleOrDefault(x =&gt; x.TypeId == AddressType.Invoice);
      }
  
      #endregion
  </code></pre>
  
  <p>As you can see I trying to return one result for a <code>DeliveryAddress</code> and one result for an <code>InvoiceAddress</code>. My problem is that I would like the link expression to create a new instance of <code>Address()</code> if <code>SingleOrDefault</code> returns <code>null</code>.
  I am really new to linq, so I am not sure whether <code>SingleOrDefault</code> is the correct expression I should be using.</p>