LinqMeta has: Sum, Max, Min, Aggregate. Work in progress.
Benchmark compare: Linq, LinqMeta, LinqFaster
Method | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op |
---|---|---|---|---|---|---|---|
SumLinq | 659.84 us | 3.8764 us | 3.4363 us | - | - | - | 48 B |
SumLinqMeta | 105.22 us | 0.3351 us | 0.3134 us | - | - | - | - |
SumLinqFaster | 89.76 us | 0.6498 us | 0.6078 us | - | - | - | - |
MinLinq | 655.10 us | 8.3769 us | 7.8358 us | - | - | - | 48 B |
MinLinqMeta | 125.14 us | 0.8147 us | 0.7620 us | - | - | - | - |
MinLinqFaster | 90.19 us | 0.8311 us | 0.7774 us | - | - | - | - |
AggregateLinq | 921.80 us | 0.7994 us | 0.7087 us | - | - | - | 48 B |
AggregateLinqMeta | 328.51 us | 3.7235 us | 3.4830 us | - | - | - | - |
AggregateLinqMetaStructFunctor | 89.78 us | 0.9132 us | 0.8542 us | - | - | - | - |
AggregateLinqFaster | 240.63 us | 2.9102 us | 2.7222 us | - | - | - | - |
SelectSumLinq | 1,240.44 us | 6.7700 us | 6.3326 us | - | - | - | 96 B |
SelectSumLinqMeta | 635.29 us | 5.6441 us | 5.0033 us | - | - | - | - |
SelectSumLinqFaster | 212.15 us | 2.1601 us | 1.8038 us | - | - | - | - |
SelectWhereSumLinq | 1,724.61 us | 20.0574 us | 16.7489 us | - | - | - | 144 B |
SelectWhereSumLinqMeta | 1,120.72 us | 6.6346 us | 6.2060 us | - | - | - | - |
SelectWhereSumStructFunctorLinqMeta | 851.96 us | 8.9757 us | 8.3959 us | - | - | - | - |
SelectWhereSumLinqFaster | 1,345.08 us | 10.4522 us | 9.7770 us | 248.0469 | 248.0469 | 248.0469 | 802072 B |
SelectWhereIndexTakeSumLinq | 43.24 us | 0.4492 us | 0.4202 us | 0.0610 | - | - | 224 B |
SelectWhereIndexTakeSumLinqMeta | 23.51 us | 0.2081 us | 0.1946 us | - | - | - | - |
SelectWhereIndexTakeSumStructFunctorLinqMeta | 17.50 us | 0.0933 us | 0.0872 us | - | - | - | - |
SelectWhereIndexTakeSumLinqFaster | 914.04 us | 4.9388 us | 4.6198 us | 350.5859 | 300.7813 | 293.9453 | 1344552 B |
GroupByMetaStruct | 171.4 us | 0.8605 us | 0.7628 us | 39.7949 | - | - | 122.38 KB |
GroupByMeta | 182.8 us | 1.8932 us | 1.6783 us | 39.7949 | - | - | 122.38 KB |
GroupByLinq | 280.3 us | 2.5520 us | 2.2623 us | 41.0156 | - | - | 126.49 KB |
Operation, like XXXDefault may replace. because XXX operators return special type Option, then may return default, value or exception
Method | Linq | LinqMeta |
---|---|---|
Select | + | + |
SelectMany | + | + |
Where | + | + |
GroupJoin | + | + |
Join | + | + |
All | + | + |
Any | + | + |
Contains | + | + |
Concat | + | + |
DefaultIfEmpty | + | + |
Distinct | + | + |
Except | + | + |
Intersect | + | + |
Union | + | + |
OrderBy | + | - |
OrderByDescending | + | - |
ThenBy | + | - |
ThenByDescending | + | - |
Reverse | + | + |
GroupBy | + | + |
Aggregate | + | + |
Max | + | + |
Min | + | + |
Sum | + | + |
MaxMin | - | + |
Cast | + | + |
OfType | + | + |
UnsafeCast | - | + |
Average | + | + |
AverageDec | - | + |
Count | + | + |
LongCount | + | + |
Statistic | - | + |
ElementAt | + | + |
ElementAtOrDefault | + | + |
First | + | + |
FirstOrDefault | + | + |
Last | + | + |
LastOrDefault | + | + |
Skip | + | + |
SkipWhile | + | + |
Take | + | + |
TakeWhile | + | + |
Zip | + | + |
SequenceEqual | + | + |
ForEach | - | + |
ToArray | + | + |
ToList | + | + |
ToDictionary | + | + |
ToHashSet | - | + |
ToStack | - | + |
ToLinkedList | - | + |
ToQueue | - | + |