WangRory / go2linq

Generic Go implementation of .NET's LINQ to Objects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go2linq Go Reference

go2linq is Go implementation of .NET's LINQ to Objects. (See also: Language Integrated Query, LINQ, Enumerable Class.)

go2linq uses generics, so it requires at least Go 1.18.

go2linq was initially inspired by Jon Skeet's Edulinq series.


Installation

go get github.com/solsw/go2linq/v2@latest

Examples

Examples of go2linq usage are in the Example... functions in test files (see Examples).

Quick and easy example:

//go:build go1.18

package main

import (
	"fmt"

	"github.com/solsw/go2linq/v2"
)

func main() {
	filter := go2linq.WhereMust(
		go2linq.NewEnSlice(1, 2, 3, 4, 5, 6, 7, 8),
		func(i int) bool { return i > 6 || i%2 == 0 },
	)
	squares := go2linq.SelectMust(
		filter,
		func(i int) string { return fmt.Sprintf("%d: %d", i, i*i) },
	)
	enr := squares.GetEnumerator()
	for enr.MoveNext() {
		square := enr.Current()
		fmt.Println(square)
	}
}

The previous code outputs the following:

2: 4
4: 16
6: 36
7: 49
8: 64

About

Generic Go implementation of .NET's LINQ to Objects.

License:MIT License


Languages

Language:Go 100.0%Language:Batchfile 0.0%