Skip to content

BitzArt/LinqExtensions

Repository files navigation

NuGet version NuGet downloads

Overview

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));
      }
  • .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);
      }
  • .Median() - Calculates the median value of a sequence;

    • Example:
      public void Example()
      {
          var numbers = Enumerable.Range(1, 10);
      
          var median = numbers.Median(x => x);
      }
  • .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);
      }
  • .Shuffle() - Randomly shuffles a sequence using Fisher-Yates shuffle. Allows for a predefined randomizer seed for deterministic results.

  • And others.

More packages

more.jpg