BitzArt.LinqExtensions provides additional LINQ extension methods, such as:
-
.If() - Conditionally applies a transformation to a sequence;
- Example:
public void Example(bool onlyEvenNumbers) { var numbers = Enumerable.Range(1, 10); var result = numbers .If(onlyEvenNumbers, q => q .Where(x => x % 2 == 0)); }
- Example:
-
.WhereIf() - Similar to
.If()
, but applies a condition to a sequence right away;- Example:
public void Example(bool onlyEvenNumbers) { var numbers = Enumerable.Range(1, 10); var result = numbers.WhereIf(onlyEvenNumbers, x => x % 2 == 0); }
- Example:
-
.Median() - Calculates the median value of a sequence;
- Example:
public void Example() { var numbers = Enumerable.Range(1, 10); var median = numbers.Median(x => x); }
- Example:
-
.OrderBy() - Additional ordering extensions.
- Comes with an
OrderDirection
enum, allowing usage like:public void Example(OrderDirection direction) { var numbers = Enumerable.Range(1, 10); // will order either ascending or descending, depending on the `direction` parameter var result = numbers.OrderBy(x => x, direction); }
- Comes with an
-
.Shuffle() - Randomly shuffles a sequence using Fisher-Yates shuffle. Allows for a predefined randomizer seed for deterministic results.
-
And others.
- BitzArt.LinqExtensions.Batching - Extension methods for sequence batching.