go-linq
.NET LINQ capabilities in Go
...Supports generic functions to make your code cleaner and free of type assertions. Supports arrays, slices, maps, strings, channels and custom collections. go-linq has recently introduced breaking API changes with v2.0.0. See release notes for details. v2.0.0 comes with a refined interface, dramatically increased performance and memory efficiency, and new features such as lazy evaluation. Although Go doesn't implement generics, with some reflection tricks, you can use go-linq without typing interface{}s and type assertions. This will introduce a performance penalty (5x-10x slower) but will yield in a cleaner and more readable code.