Sobre o projeto

ZLinq é uma biblioteca LINQ de alta performance e zero alocação para plataformas .NET (netstandard2.0, 2.1, net8, net9) e engines de jogos como Unity e Godot. Ela fornece um `ValueEnumerable<T>` baseado em struct que elimina alocações em cadeias de métodos, alcançando melhor performance que o LINQ padrão. Os principais recursos incluem: - **99% de compatibilidade** com o LINQ do .NET 10, incluindo novos operadores como `Shuffle`, `RightJoin`, `LeftJoin`, `Sequence` e `InfiniteSequence`. - **LINQ para Span**: Suporte completo para operações com `Span<T>` usando `allows ref struct` do .NET 9/C# 13. - **LINQ para SIMD**: Aceleração SIMD automática para tipos numéricos suportados (ex.: `int`, `float`, `double`) com `SumUnchecked` para máxima performance. - **LINQ para Árvore**: Suporte embutido para estruturas em árvore como FileSystem, JSON e GameObject, permitindo consultas LINQ sobre dados hierárquicos. - **Substituição direta**: Source Generator opcional (`ZLinq.DropInGenerator`) para acelerar automaticamente todos os métodos LINQ sem alterações no código. O uso é simples: adicione `AsValueEnumerable()` a coleções existentes para começar a encadear métodos ZLinq. A biblioteca passa em mais de 9000 testes do System.Linq.Tests do dotnet/runtime, garantindo confiabilidade. Ela também inclui utilitários como `ToArrayPool` para materialização sem alocação e `CopyTo` para evitar alocações de coleções. Embora cadeias de métodos retornem tipos diferentes (impedindo reatribuição), isso raramente é um problema na prática. ZLinq é ideal para aplicações críticas em performance, como jogos, onde LINQ sem alocação é crucial.