Created
February 14, 2012 10:27
-
-
Save jagregory/1825592 to your computer and use it in GitHub Desktop.
Ways of handling null collections and AddRange
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// a) | |
if (items != null) | |
collection.AddRange(items) | |
// b) | |
collection.AddRange(items ?? new Foo[0]) |
@robashton I think that should be collection.NullSafeAddRange(items)
?
Just use Rob's extension method...nice and clean...and what I use on "real" projects ;)
@jagregory collection.CheckIfThisIsNullAndIfThisIsNotAddTheItemsInTheCollectionToMe(items); [Something Neil might write ;) ]
@jagregory I don't like it, not enough job security
Small correction to @robashton's extension because ICollection
doesn't have AddRange
:
using System.Collections.Generic;
public static class IEnumerableExtensions
{
public static void AddTo<T>(this IEnumerable<T> self, List<T> destination)
{
if(self != null) destination.AddRange(self);
}
}
@leniel How do you call this extension method on self
if self
is null
? It seems like it would cause some exception))
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ashic Same difference there really, except yours is more verbose than both :)
I personally prefer B, mainly because it's got a bit less indentation and the
AddRange
is a little more focal; that being said, having the new array is a bit of a shame. I could useEnumerable.Empty()
which will only allocate a new array the first time around, but that just isn't as neat and tidy.