This project is read-only.
LinqEx is an extension to LINQ to Objects. It contains extension methods to enumerables, dictionaries, strings and streams.


  • LinqEx was written as a Portable Class Library and provides support for (.NET Framework 4, Silverlight 4, Windows Phone 7 and .NET for Windows Store Apps)
  • LinqEx extends the core System.Linq namespace, so you do not need any using directives, if System.Linq is present.
  • Common Language Specification compliant code


LinqEx provides the following extensions:
  • Enumerables
    • Mapping: Map, Replace
    • Subsequences: Subsequence, TakeEvery, SkipEvery, Take, Skip (enhanced), StartsWith, EndsWith, Split (by length or separator), Separate
    • Sorting: CycleForward, CycleBackward, Shuffle
    • Folding: Fold, BinaryFold, BinaryFoldRecursive, Unfold, Differentiate, MapReduce
    • Processing: Apply, ForEach, Fold (into a single element)
    • Index based: Take, Except
    • Search: IndexOf, IndexOfAny, ElementAtMin, ElementAtMax
    • Set operations: IsSubsetOf, IsSupersetOf, SetEqual, Except
    • Combining: Combine
  • Dictionaries
    • FindKey: find the key for a specified value.
    • Swap: swaps keys and values of a dictionary.
  • Strings
    • SplitToLines: splits a string into lines.
  • Streams
    • AsTextLines: reads a stream as text, line by line.

Code Quality

  • Passes Microsoft Managed Recommended Rules without any warnings
  • Passes Code Contracts static checking without any warnings at high level
  • 80%+ Code Coverage
  • Visual Studio standard coding style
  • All public members and parameters are documented

Documentation and samples

Here you can find the documentation with samples for each method.


You can find LinqEx on NuGet:
PM> Install-Package LinqEx

Last edited Nov 17, 2012 at 7:45 PM by BlueCode, version 11