LINQ nouvelle instance lorsque SingleOrDefault retourne null

Une autre question rapide.
J'ai cette méthode simple:

    #region Fields

    private Collection<Address> _addresses;

    #endregion

    #region Public methods

    public Address DeliveryAddress()
    {
        if (_addresses == null)
            if (this.Id > 0)
                _addresses = Core.Data.Addresses.GetClient(this.Id);

        return _addresses.SingleOrDefault(x => x.TypeId == AddressType.Delivery);
    }

    public Address InvoiceAddress()
    {
        if (_addresses == null)
            if (this.Id > 0)
                _addresses = Core.Data.Addresses.GetClient(this.Id);

        return _addresses.SingleOrDefault(x => x.TypeId == AddressType.Invoice);
    }

    #endregion

Comme vous pouvez le voir j'ai essayer de retourner un résultat pour un DeliveryAddress et un résultat pour un InvoiceAddress. Mon problème est que je voudrais que le lien de l'expression de créer une nouvelle instance de Address() si SingleOrDefault retourne null.
Je suis vraiment linq, donc je ne suis pas sûr de savoir si SingleOrDefault est l'expression correcte, je devrais être en utilisant.

Voir: stackoverflow.com/questions/11594355/...
Vous voudrez peut-être regarder dans le .Any() fonction.

OriginalL'auteur r3plica | 2012-12-30