Array Operation Mapping - Crossreferenced Tables

Enumerable Methods (C# and Equivalents)

C# Python JavaScript Java Ruby PHP Swift Kotlin Rust Haskell Clojure
Aggregate functool.reduce() array.reduce() stream.reduce() array.inject() array_reduce() array.reduce() list.reduce() iter.fold() foldl() reduce()
AggregateBy Not directly implemented Not directly implemented Collectors.groupingBy() array.group_by() array_map() Not directly implemented groupBy() group_by() groupBy() group-by
All all() array.every() stream.allMatch() array.all? array_all() array.all() list.all() iter.all() all() every?
Any any() array.some() stream.anyMatch() array.any? array_any() array.any() list.any() iter.any() any() some?
Append my_list + [element] array.concat([element]) Stream.concat() array.append() array_push() array.append() list + [element] vec.push() append() conj()
AsEnumerable Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented
Average(IEnumerable) sum(my_list) / len(my_list) array.reduce() / array.length list.stream().mapToInt().average() array.sum() / array.size() array_sum($array) / count($array) array.average() list.average() iter.map().sum() / iter.len() mean() mean()
Average sum(my_list) / len(my_list) array.reduce() / array.length list.stream().mapToInt().average() array.sum() / array.size() array_sum($array) / count($array) array.average() list.average() iter.map().sum() / iter.len() mean() mean()
Cast list(map(type)) array.map() stream.map() array.map(&:to_type) array_map('intval', $array) array.map() list.map() iter.map() map() map()
Chunk [my_list[i:i+size] for i in range(0, len(my_list), size)] Not implemented Not implemented array.each_slice(size).to_a array_chunk($array, size) array.chunked(size) list.chunked(size) iter.chunks(size) chunksOf(size) partition(size)
Concat list1 + list2 array.concat() Stream.concat() array.concat() array_merge($array1, $array2) array.concat() list.plus(list2) vec.append() concat() concat()
Contains value in my_list array.includes() list.contains() array.include? in_array(value, $array) array.contains() list.contains() iter.contains() elem() contains()
Count len(my_list) array.length list.count() array.size() count($array) array.count() list.size() iter.len() length() count()
CountBy Not directly implemented Not directly implemented Collectors.groupingBy() array.group_by().size() array_count_values() Not implemented groupBy().count() group_by().map() groupBy() frequencies()
DefaultIfEmpty my_list or [default_value] array.length > 0 ? array : [default_value] stream.findFirst().orElse(default_value) array.empty? ? [default_value] : array empty($array) ? [default_value] : $array array.isEmpty() ? [default_value] : array list.isEmpty() ? [default_value] : list iter.is_empty() ? [default_value] : iter ifNull() orElse()
Distinct set(my_list) array.filter((value, index, self) => self.indexOf(value) === index) list.stream().distinct() array.uniq() array_unique($array) array.unique() list.distinct() iter.unique() nub() distinct()
DistinctBy Not directly implemented Not directly implemented Collectors.toMap() array.uniq_by(&:key) array_map() Not implemented distinctBy() iter.distinct_by() nubBy() distinct-by()
ElementAt my_list[index] array[index] list.get(index) array[index] $array[index] array[index] list[index] iter.nth(index) index() nth()
ElementAtOrDefault my_list.get(index, default_value) array[index] || default_value list.stream().skip(index).findFirst().orElse(default_value) array.fetch(index, default_value) isset($array[index]) ? $array[index] : default_value array[safe_index(index, array)] list.getOrElse(index, default_value) iter.nth(index, default_value) indexOrElse() nth() | default_value
Empty len(my_list) == 0 array.length === 0 list.isEmpty() array.empty? empty($array) array.isEmpty() list.isEmpty() iter.is_empty() null() empty?
Except my_list - other_list array.filter(x => !other_array.includes(x)) list.stream().filter(x -> !list2.contains(x)) array - other_array array_diff($array1, $array2) array.filter() list.filter() iter.filter() except() remove()
ExceptBy Not directly implemented Not directly implemented Collectors.toSet() array.reject(&:key) array_diff_key() Not implemented filterNot() iter.filter_by() removeBy() reject-by()
First my_list[0] array[0] list.stream().findFirst() array.first() array_shift($array) array.first() list.first() iter.next() head() first()
FirstOrDefault my_list[0] if my_list else default_value array[0] || default_value list.stream().findFirst().orElse(default_value) array.first() || default_value array_shift($array) ?: default_value array.first() ?? default_value list.firstOrNull() ?: default_value iter.next_or(default_value) headOrElse() first() | default_value
GroupBy groupby(my_list, key_function) array.reduce((groups, item) => { groups[item.key] = (groups[item.key] || []).concat(item); return groups; }, {}) list.stream().collect(Collectors.groupingBy(x -> x.getKey())) array.group_by(&:key) array_group_by($array, $key) array.groupBy() list.groupBy() iter.group_by() groupBy() group-by()
GroupJoin Not directly implemented Not directly implemented list1.stream().collect(Collectors.groupingBy(x -> x.getKey(), Collectors.mapping(y -> y, Collectors.toList()))) Not implemented Not implemented Not implemented Not implemented Not implemented groupJoin() group-join()
Index my_list.index(value) array.indexOf(value) list.indexOf(value) array.index_of(value) array_search($value, $array) array.firstIndex(of: value) list.indexOf(value) iter.position(value) elemIndex() index-of()
Intersect set(my_list) & set(other_list) array.filter(x => other_array.includes(x)) list.stream().filter(x -> list2.contains(x)) array & other_array array_intersect($array1, $array2) array.filter() list.intersect() iter.intersect() intersect() intersect()
IntersectBy Not directly implemented Not directly implemented Collectors.toSet() array & other_array.map(&:key) array_intersect_key($array1, $array2) Not implemented intersectBy() iter.intersect_by() intersectBy() intersect-by()
Join 'separator'.join(my_list) array.join('separator') list.stream().collect(Collectors.joining("separator")) array.join(separator) implode($separator, $array) array.join(separator) list.join(separator) iter.join(separator) concat() clojure.string/join()
Last my_list[-1] array[array.length - 1] list.stream().skip(list.size() - 1).findFirst() array.last() array_pop($array) array.last() list.last() iter.last() last() last()
LastOrDefault my_list[-1] if my_list else default_value array[array.length - 1] || default_value list.stream().skip(list.size() - 1).findFirst().orElse(default_value) array.last() || default_value array_pop($array) ?: default_value array.last() ?? default_value list.lastOrNull() ?: default_value iter.last_or(default_value) lastOrElse() last() | default_value
LongCount len(my_list) array.length list.stream().count() array.size() count($array) array.count() list.size() iter.len() length() count()
Max(IEnumerable) max(my_list) Math.max(...array) list.stream().max(Comparator.naturalOrder()).get() array.max() max($array) array.max() list.max() iter.max() maximum() apply max()
Max max(my_list) Math.max(...array) list.stream().max(Comparator.naturalOrder()).get() array.max() max($array) array.max() list.max() iter.max() maximum() apply max()
MaxBy Not directly implemented Not directly implemented Collectors.maxBy() array.max_by(&:key) array_reduce() Not implemented maxBy() iter.max_by() maximumBy() max-by()
Min(IEnumerable) min(my_list) Math.min(...array) list.stream().min(Comparator.naturalOrder()).get() array.min() min($array) array.min() list.min() iter.min() minimum() apply min()
Min min(my_list) Math.min(...array) list.stream().min(Comparator.naturalOrder()).get() array.min() min($array) array.min() list.min() iter.min() minimum() apply min()
MinBy Not directly implemented Not directly implemented Collectors.minBy() array.min_by(&:key) array_reduce() Not implemented minBy() iter.min_by() minimumBy() min-by()
OfType filter(lambda x: isinstance(x, type), my_list) array.filter(x => x instanceof Type) list.stream().filter(Type.class::isInstance) array.select { |x| x.is_a?(Type) } array_filter($array, 'is_type') array.filter() list.filterIsInstance() iter.filter() filter() filter()
Order sorted(my_list) array.sort() list.stream().sorted() array.sort() sort($array) array.sort() list.sort() iter.sort() sort() sort()
OrderBy sorted(my_list, key=key_function) array.sort((a, b) => key_function(a) - key_function(b)) list.stream().sorted(Comparator.comparing(key_function)) array.sort_by(&:key) array_sort_by($array, 'key_function') array.sorted(by: key_function) list.sortedBy() iter.sort_by() sortBy() sort-by()
OrderByDescending sorted(my_list, key=key_function, reverse=True) array.sort((a, b) => key_function(b) - key_function(a)) list.stream().sorted(Comparator.comparing(key_function).reversed()) array.sort_by(&:key).reverse array_sort_by($array, 'key').reverse() array.sorted(by: key_function, descending: true) list.sortedByDescending() iter.sort_by().reverse() sortByDescending() sort-by-descending()
OrderDescending sorted(my_list, reverse=True) array.sort().reverse() list.stream().sorted(Comparator.reverseOrder()) array.sort.reverse array_reverse($array) array.sorted(reverse: true) list.sortedDescending() iter.reverse() sortDescending() reverse()
Prepend my_list = [item] + my_list array.unshift(item) list.addFirst(item) [item] + array array_unshift($array, $item) array.insert(0, item) list.prepend(item) iter.prepend(item) prepend() conj()
Range(Int32, Int32) range(start, end) Array.from({length: end - start}, (_, i) => i + start) IntStream.range(start, end).boxed().collect(Collectors.toList()) (start..end).to_a range($start, $end) Array(start.. start..end range(start, end) [start..end] range(start, end)
Repeat [item] * count Array(count).fill(item) Collections.nCopies(count, item) [item] * count array_fill(0, $count, $item) Array(repeating: item, count: count) List(item, count) vec![item; count] repeat(count, item) repeat(count, item)
Reverse my_list[::-1] array.reverse() Collections.reverse(list) array.reverse array_reverse($array) array.reverse() list.reversed() iter.rev() reverse() reverse()
Select map(function, my_list) array.map(x => function(x)) list.stream().map(function) array.map { |x| function(x) } array_map('function', $array) array.map { function($0) } list.map { function(it) } iter.map(function) map(function) map(function)
SelectMany itertools.chain.from_iterable(my_list) array.flatMap(x => function(x)) list.stream().flatMap(function) array.flat_map { |x| function(x) } array_map('function', $array) array.flatMap { function($0) } list.flatMap { function(it) } iter.flat_map(function) concatMap(function) mapcat(function)
SequenceEqual my_list == other_list array.every((val, index) => val === other_list[index]) list.stream().allMatch(other_list::contains) array == other_array array_diff($array, $other_array) == [] array == other_array list == other_list iter.eq(other_list) == apply =
Single next(iter(my_list)) array[0] list.stream().findFirst().get() array.first reset($array) array.first list.first() iter.next() head() first()
SingleOrDefault next(iter(my_list), default_value) array[0] || default_value list.stream().findFirst().orElse(default_value) array.first || default_value reset($array) ?: $default_value array.first || default_value list.firstOrNull() ?: default_value iter.next().unwrap_or(default_value) headOr() firstOr()
Skip my_list[start:] array.slice(start) list.stream().skip(n) array.drop(n) array_slice($array, $n) array.dropFirst(n) list.drop(n) iter.skip(n) drop(n) drop(n)
SkipLast my_list[:-n] array.slice(0, -n) list.stream().skipLast(n) array[0...(array.length - n)] array_slice($array, 0, count($array) - $n) array.dropLast(n) list.dropLast(n) iter.skipLast(n) init(n) drop-last(n)
SkipWhile itertools.dropwhile(condition, my_list) array.sliceWhile(condition) list.stream().skipWhile(condition) array.drop_while { |x| condition(x) } array_filter($array, 'condition') array.drop(while: condition) list.dropWhile(condition) iter.skipWhile(condition) dropWhile() drop-while()
Sum(IEnumerable) sum(my_list) array.reduce((a, b) => a + b, 0) list.stream().mapToInt(Integer::intValue).sum() array.sum array_sum($array) array.sum() list.sum() iter.sum() sum() reduce( + )
Sum sum(my_list) array.reduce((a, b) => a + b, 0) list.stream().mapToInt(Integer::intValue).sum() array.sum array_sum($array) array.sum() list.sum() iter.sum() sum() reduce( + )
Take my_list[:n] array.slice(0, n) list.stream().limit(n) array.take(n) array_slice($array, 0, $n) array.prefix(n) list.take(n) iter.take(n) take(n) take(n)
TakeLast my_list[-n:] array.slice(-n) list.stream().skip(list.size() - n) array.last(n) array_slice($array, -$n) array.suffix(n) list.takeLast(n) iter.takeLast(n) takeLast(n) take-last(n)
TakeWhile itertools.takewhile(condition, my_list) array.takeWhile(condition) list.stream().takeWhile(condition) array.take_while { |x| condition(x) } array_filter($array, 'condition') array.takeWhile(condition) list.takeWhile(condition) iter.takeWhile(condition) takeWhile() take-while()
ThenBy sorted(my_list, key=key_function) array.sort((a, b) => key_function(a) - key_function(b)) list.stream().sorted(Comparator.comparing(key_function)) array.sort_by { |x| key_function(x) } usort($array, 'key_function') array.sorted { key_function($0) } list.sortedBy(key_function) iter.sort_by(key_function) sortBy() sort-by()
ThenByDescending sorted(my_list, key=key_function, reverse=True) array.sort((a, b) => key_function(b) - key_function(a)) list.stream().sorted(Comparator.comparing(key_function).reversed()) array.sort_by { |x| key_function(x) }.reverse usort($array, 'key_function', SORT_DESC) array.sorted { key_function($0) }.reverse list.sortedByDescending(key_function) iter.sort_by(key_function).rev() sortByDescending() sort-by-descending()
ToArray list(list(my_list)) Array.from(array) list.toArray(new Type[0]) array.to_a array_values($array) Array($array) list.toTypedArray() Vec::from_iter(iter) toList() into-array()
ToDictionary dict(zip(keys, values)) array.reduce((dict, [key, value]) => { dict[key] = value; return dict }, {}) list.stream().collect(Collectors.toMap(key_function, value_function)) Hash[array.map { |x| [key_function(x), value_function(x)] }] array_combine($keys, $values) Dictionary(unique_keys, array) list.associateBy(key_function) HashMap::new().extend(iter) fromListToMap() into({})
ToHashSet set(my_list) new Set(array) new HashSet<>(list) Set.new(array) array_flip($array) Set(array) HashSet(array) HashSet::from_iter(iter) set() set()
ToList list(my_list) Array.from(array) list.stream().collect(Collectors.toList()) array.to_a array_values($array) Array($array) list.toList() Vec::from_iter(iter) toList() into([])
ToLookup Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented
TryGetNonEnumeratedCount len(my_list) array.length list.size() array.size count($array) array.count() list.size iter.count() length() count()
Union set(my_list + other_list) new Set([...array, ...other_array]) Stream.concat(list.stream(), other_list.stream()).collect(Collectors.toSet()) array | other_array array_merge($array, $other_array) array.union(array2) list.union(other_list) iter.chain(other_iter).collect() union() union()
UnionBy Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented Not implemented
Where filter(condition, my_list) array.filter(condition) list.stream().filter(condition) array.select { |x| condition(x) } array_filter($array, 'condition') array.filter { condition($0) } list.filter { condition(it) } iter.filter(condition) filter() filter()
Zip zip(my_list, other_list) array.zip(other_array) IntStream.range(0, Math.min(list.size(), other_list.size())) array.zip(other_array) array_map(null, $array, $other_array) zip(array, other_array) list.zip(other_list) iter.zip(other_iter) zip() zip()