go2linq v4 is Go implementation of .NET's LINQ to Objects. (See also: Language Integrated Query, LINQ, Enumerable Class.)
go2linq v4 is based on iter.Seq, so it requires setting GOEXPERIMENT=rangefunc when executing go commands.
go get github.com/solsw/go2linq/v4
Examples of go2linq usage are in the Example...
functions in test files
(see Examples).
package main
import (
"fmt"
"github.com/solsw/go2linq/v4"
)
func main() {
filter, _ := go2linq.Where(
go2linq.VarAll(1, 2, 3, 4, 5, 6, 7, 8),
func(i int) bool { return i > 6 || i%2 == 0 },
)
squares, _ := go2linq.Select(
filter,
func(i int) string { return fmt.Sprintf("%d: %d", i, i*i) },
)
for square := range squares {
fmt.Println(square)
}
}
The previous code outputs the following:
2: 4
4: 16
6: 36
7: 49
8: 64