LINQ Function Equivalents Across Languages

C# LINQ Java (Streams) Swift PHP Perl Kotlin Python Ruby JavaScript
Where .filter() .filter {} / .where {} array_filter() grep {} .filter {} filter(lambda x: ...) .select {} .filter(x => ...)
Select .map() .map {} array_map() map {} .map {} map(lambda x: ...) .map {} .map(x => ...)
First .findFirst().get() .first or first(where:) reset(array_filter(...)) first {} (via List::Util) .first() next(iter(...)) .first or .find {} .find(x => ...)
FirstOrDefault .findFirst().orElse(null) .first(where:) ?? nil array_values(...)[0] ?? null first {} or manual check .firstOrNull() next(iter(...), None) .find {} or `
Any .anyMatch() .contains {} / .any(where:) !empty(array_filter(...)) any {} .any {} any(...) .any? {} .some(x => ...)
All .allMatch() .allSatisfy {} count(filter) == count(...) all {} .all {} all(...) .all? {} .every(x => ...)
Count .count() .count count() scalar(@array) or grep {} .count() len(...) .count .length or .size
OrderBy .sorted() .sorted {} usort() sort {} .sortedBy {} sorted(...) .sort_by {} .sort((a, b) => ...)
OrderByDescending .sorted(Comparator.reverseOrder()) .sorted(by: >) usort() with reverse reverse sort .sortedByDescending {} sorted(..., reverse=True) .sort_by(...).reverse .sort(...).reverse()
GroupBy Collectors.groupingBy() Manual via Dictionary Manual loop List::Util::group_by .groupBy {} itertools.groupby() or dict group_by(&:key) Manual via object map
ToList .collect(Collectors.toList()) Array(...) Arrays by default @array .toList() list(...) Already arrays Arrays by default
ToArray .toArray() Array(...) Arrays by default @array .toTypedArray() list(...) Already arrays Arrays by default
Sum .mapToInt().sum() .reduce(0, +) array_sum() List::Util::sum .sum() / .sumOf {} sum(...) .sum .reduce((a, b) => a + b)
Average .mapToInt().average() .average() array_sum()/count() Manual or sum/length .average() sum(...) / len(...) .sum / .size sum / length (manual)
Distinct .distinct() Set(...) array_unique() uniq @array .distinct() set(...) .uniq Array.from(new Set(...))
Skip .skip(n) .dropFirst(n) array_slice(..., n) @array[n..$#array] .drop(n) arr[n:] .drop(n) .slice(n)
Take .limit(n) .prefix(n) array_slice(..., 0, n) @array[0..$n-1] .take(n) arr[:n] .take(n) .slice(0, n)
Aggregate .reduce() .reduce(into:) array_reduce() reduce {} .reduce() functools.reduce(...) .inject .reduce(...)
Max .max() .max() max($array) List::Util::max .maxOrNull() max(...) .max Math.max(...arr)
Min .min() .min() min($array) List::Util::min .minOrNull() min(...) .min Math.min(...arr)
Zip IntStream.range().mapToObj() zip() array_map(null, ...) map { $a[$_], $b[$_] } .zip() zip(list1, list2) .zip arr1.map((v, i) => [v, arr2[i]])

Note: Some language examples may need additional imports or libraries (e.g., List::Util in Perl or functools in Python).