Extension Methods from Steven Jeuris
Returns a selected value when the source is not null; null otherwise.
Returns all combinations of a chosen amount of selected elements in the sequence.
Limit a value to a certain range. When the value is smaller/bigger than the range, snap it to the range border.
Merges three sequences by using the specified predicate function.
Returns whether the sequence contains a certain amount of elements, without having to traverse the entire collection.