31 template<
typename value_t,
typename enumerable_t>
42 template<
typename type_t>
46 template<
typename type_t>
59 template<xtd::func_callable<value_t, value_t, value_t> func_t>
71 template<
typename accumulate_t, xtd::func_callable<accumulate_t, accumulate_t, value_t> func_t>
72 [[nodiscard]]
auto aggregate(accumulate_t&& seed, func_t&&
func)
const -> accumulate_t {
85 template<
typename result_t,
typename accumulate_t, xtd::func_callable<accumulate_t, accumulate_t, value_t> func_t, xtd::func_callable<result_t, value_t> result_selector_t>
86 [[nodiscard]]
auto aggregate(accumulate_t&& seed, func_t&&
func, result_selector_t&& result_selector)
const -> result_t {
96 template<xtd::predicate_callable<value_t> predicate_t>
106 [[nodiscard]]
auto any() const noexcept ->
bool {
115 template<xtd::predicate_callable<value_t> predicate_t>
126 template<
typename element_t>
151 template<
typename result_t>
166 template<xtd::iterable second_t>
174 [[nodiscard]]
auto contains(value_t&& value)
const noexcept ->
bool {
188 template<xtd::func_callable<
bool, value_t, value_t> equater_t>
189 [[nodiscard]]
auto contains(value_t&& value, equater_t&& equater)
const noexcept ->
bool {
207 template<xtd::predicate_callable<value_t> predicate_t>
225 template<
typename key_t, xtd::callable<key_t, value_t> key_selector_t>
226 [[nodiscard]]
auto count_by(key_selector_t&& key_selector)
const noexcept {
237 template<
typename key_t, xtd::callable<key_t, value_t> key_selector_t>
249 template<
typename key_t, xtd::callable<key_t, value_t> key_selector_t, xtd::callable<
bool, key_t, key_t> key_equater_t>
280 template<xtd::func_callable<
bool, value_t, value_t> equater_t>
289 template<xtd::predicate_callable<value_t> predicate_t>
296 template<xtd::predicate_callable<value_t> predicate_t>
320 template<xtd::callable<value_t, value_t> selector_t>
327 template<
typename result_t, xtd::callable<result_t, value_t> selector_t>
329 [[nodiscard]]
auto max(selector_t&& selector)
const -> result_t {
341 template<xtd::callable<value_t, value_t> selector_t>
348 template<
typename result_t, xtd::callable<result_t, value_t> selector_t>
350 [[nodiscard]]
auto min(selector_t&& selector)
const -> result_t {
368 template<xtd::func_callable<
bool, value_t, value_t> lesser_t>
378 [[nodiscard]]
auto order_by(
const std::function<value_t(
const value_t&)>& key_selector)
const {
387 template<
typename key_t>
397 [[nodiscard]]
auto order_by_descending(
const std::function<value_t(
const value_t&)>& key_selector)
const {
406 template<
typename key_t>
407 [[nodiscard]]
auto order_by(
const std::function<key_t(
const value_t&)>& key_selector)
const {
417 [[nodiscard]]
auto select(
auto&& selector)
const {
427 template<
typename result_t>
428 [[nodiscard]]
auto select(
auto&& selector)
const {
510 auto self() const noexcept -> const enumerable_t& {
return static_cast<const enumerable_t&
>(*this);}
517#define __XTD_CORE_INTERNAL__
519#undef __XTD_CORE_INTERNAL__
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition array.hpp:64
Provides a base class for implementations of the xtd::collections::generic::icomparer <type_t> generi...
Definition comparer.hpp:33
Represents an enumerable generator that supports deferred, lazy iteration over a collection of a spec...
Definition enumerable_generator.hpp:44
auto contains(value_t &&value) const noexcept -> bool
Determines whether a sequence contains a specified element by using the default equality comparer.
Definition enumerable.hpp:174
auto cast() const noexcept -> xtd::collections::generic::enumerable_generator< result_t >
Casts the elements of an xtd::collections::generic::ienumerable to the specified type.
Definition enumerable.hpp:152
auto to_list() const -> xtd::collections::generic::list< value_t >
Creates a xtd::collections::generic::list <type_t> from an xtd::collections::generic::ienumerable <ty...
auto max(selector_t &&selector) const -> result_t
Returns the maximum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:329
value_t value_type
Represents the ienumerable value type.
Definition enumerable.hpp:40
auto count(predicate_t &&predicate) const noexcept -> xtd::usize
Returns a number that represents how many elements in the specified sequence satisfy a condition.
Definition enumerable.hpp:208
auto max(selector_t &&selector) const -> value_t
Returns the maximum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:321
auto average() const noexcept
Computes the average of a sequence of value_t values.
Definition enumerable.hpp:143
auto first_or_default(predicate_t &&predicate) const noexcept -> value_t
Returns the first element of the sequence that satisfies a condition or a default value if no such el...
Definition enumerable.hpp:297
auto order(const xtd::collections::generic::icomparer< value_t > &comparer) const -> xtd::collections::generic::enumerable_generator< value_t >
Sorts the elements of a sequence in ascending order.
Definition enumerable.hpp:362
auto count_by(key_selector_t &&key_selector, key_equater_t &&key_equater) const noexcept -> xtd::collections::generic::enumerable_generator< xtd::collections::generic::key_value_pair< key_t, xtd::usize > >
Returns the count of elements in the current sequence grouped by key.
Definition enumerable.hpp:250
auto take(const xtd::range &range) -> xtd::collections::generic::enumerable_generator< value_t >
Returns a specified number of contiguous elements from the start of a sequence.
Definition enumerable.hpp:467
auto first_or_default() const noexcept -> value_t
Returns the first element of the sequence that satisfies a condition or a default value if no such el...
Definition enumerable.hpp:308
auto distinct() const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Returns distinct elements from a sequence by using the default equality comparer to compare values.
Definition enumerable.hpp:268
auto aggregate(accumulate_t &&seed, func_t &&func, result_selector_t &&result_selector) const -> result_t
Applies an accumulator function over a sequence. The specified seed value is used as the initial accu...
Definition enumerable.hpp:86
auto count_by(key_selector_t &&key_selector) const noexcept
Returns the count of elements in the current sequence grouped by key.
Definition enumerable.hpp:226
auto skip_while(auto &&predicate) -> xtd::collections::generic::enumerable_generator< value_t >
Bypasses elements in a sequence as long as a specified condition is true and then returns the remaini...
Definition enumerable.hpp:452
auto any(predicate_t &&predicate) const -> bool
Determines whether any element of a sequence satisfies a condition.
Definition enumerable.hpp:116
enumerable_t enumerable_type
Represents the ienumerable enumerable type.
Definition enumerable.hpp:38
auto to_array() const -> xtd::array< value_t >
Creates a xtd::array <type_t> from an xtd::collections::generic::ienumerable <type_t>.
auto order_by_descending(const std::function< key_t(const value_t &)> &key_selector) const
Sorts the elements of a sequence in descending order according to a key.
Definition enumerable.hpp:388
auto append(element_t &&element) const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Appends a value to the end of the sequence.
Definition enumerable.hpp:127
auto min() const -> value_t
Returns the minimum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:335
auto select(auto &&selector) const
Projects each element of a sequence into a new form.
Definition enumerable.hpp:417
auto order(lesser_t &&lesser) const -> xtd::collections::generic::enumerable_generator< value_t >
Sorts the elements of a sequence in ascending order.
Definition enumerable.hpp:369
auto any() const noexcept -> bool
Determines whether a sequence contains any elements.
Definition enumerable.hpp:106
auto order_by(const std::function< key_t(const value_t &)> &key_selector) const
Sorts the elements of a sequence in ascending order according to a key.
Definition enumerable.hpp:407
auto aggregate(accumulate_t &&seed, func_t &&func) const -> accumulate_t
Applies an accumulator function over a sequence. The specified seed value is used as the initial accu...
Definition enumerable.hpp:72
auto min(selector_t &&selector) const -> result_t
Returns the minimum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:350
auto default_if_empty(const value_t &default_value) const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Returns the elements of the specified sequence or the specified value in a singleton collection if th...
Definition enumerable.hpp:262
auto take(xtd::usize count) -> xtd::collections::generic::enumerable_generator< value_t >
Returns a specified number of contiguous elements from the start of a sequence.
Definition enumerable.hpp:460
auto max() const -> value_t
Returns the maximum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:314
typename xtd::linq::enumerable::list< type_t > list
Represents the list value type.
Definition enumerable.hpp:47
auto default_if_empty() const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Returns the elements of the specified sequence or the type parameter's default value in a singleton c...
Definition enumerable.hpp:256
auto order() const -> xtd::collections::generic::enumerable_generator< value_t >
Sorts the elements of a sequence in ascending order.
Definition enumerable.hpp:356
auto contains(value_t &&value, equater_t &&equater) const noexcept -> bool
Determines whether a sequence contains a specified element by using a specified equality comparer.
Definition enumerable.hpp:189
auto skip(xtd::usize count) -> xtd::collections::generic::enumerable_generator< value_t >
Bypasses a specified number of elements in a sequence and then returns the remaining elements.
Definition enumerable.hpp:442
auto order_by_descending(const std::function< value_t(const value_t &)> &key_selector) const
Sorts the elements of a sequence in descending order according to a key.
Definition enumerable.hpp:397
auto distinct(equater_t &&equater) const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Returns distinct elements from a sequence by using a specified xtd::collections::generic::iequality_c...
Definition enumerable.hpp:281
auto all(predicate_t &&predicate) const -> bool
Determines whether all elements of a sequence satisfy a condition.
Definition enumerable.hpp:97
auto select(auto &&selector) const
Projects each element of a sequence into a new form by incorporating the element's index.
Definition enumerable.hpp:428
auto first_or_default(predicate_t &&predicate, value_t &&default_value) const noexcept -> value_t
Returns the first element of the sequence that satisfies a condition, or a specified default value if...
Definition enumerable.hpp:290
auto min(selector_t &&selector) const -> value_t
Returns the minimum value in a sequence of xtd::numeric values.
Definition enumerable.hpp:342
auto count() const noexcept -> xtd::usize
Returns the number of elements in current sequence.
Definition enumerable.hpp:198
auto chunk(xtd::usize size) const -> xtd::collections::generic::enumerable_generator< xtd::array< value_t > >
Splits the elements of a sequence into chunks of size at most size.
Definition enumerable.hpp:159
auto shuffle() const -> xtd::collections::generic::enumerable_generator< value_t >
Shuffles the order of the elements of a sequence.
Definition enumerable.hpp:435
auto contains(value_t &&value, xtd::collections::generic::iequality_comparer< value_t > &&comparer) const noexcept -> bool
Determines whether a sequence contains a specified element by using a specified equality comparer.
Definition enumerable.hpp:181
auto take_while(auto &&predicate) -> xtd::collections::generic::enumerable_generator< value_t >
Returns elements from a sequence as long as a specified condition is true, and then skips the remaini...
Definition enumerable.hpp:477
auto as_enumerable() const noexcept
Returns the input typed as xtd::collections::generic::ienumerable <type_t>.
Definition enumerable.hpp:136
auto order_by(const std::function< value_t(const value_t &)> &key_selector) const
Sorts the elements of a sequence in ascending order according to a key.
Definition enumerable.hpp:378
auto count_by(key_selector_t &&key_selector, xtd::collections::generic::iequality_comparer< key_t > &&key_comparer) const noexcept -> xtd::collections::generic::enumerable_generator< xtd::collections::generic::key_value_pair< key_t, xtd::usize > >
Returns the count of elements in the current sequence grouped by key.
Definition enumerable.hpp:238
auto concat(second_t &&second) const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Concatenates two sequences.
Definition enumerable.hpp:167
auto aggregate(func_t &&func) const -> value_t
Applies an accumulator function over a sequence.
Definition enumerable.hpp:60
auto distinct(xtd::collections::generic::iequality_comparer< value_t > &&comparer) const noexcept -> xtd::collections::generic::enumerable_generator< value_t >
Returns distinct elements from a sequence by using a specified xtd::collections::generic::iequality_c...
Definition enumerable.hpp:274
typename xtd::linq::enumerable::ienumerable< type_t > ienumerable
Represents the ienumerable value type.
Definition enumerable.hpp:43
auto first_or_default(value_t &&default_value) const noexcept -> value_t
Returns the first element of the sequence that satisfies a condition or a default value if no such el...
Definition enumerable.hpp:303
auto where(auto &&predicate) const
Filters a sequence of values based on a predicate.
Definition enumerable.hpp:504
auto count(value_t &&value) const noexcept -> xtd::usize
Returns the number of elements with the specified value.
Definition enumerable.hpp:214
Exposes a method that compares two objects.
Definition icomparer.hpp:30
Defines methods to support the comparison of objects for equality.
Definition iequality_comparer.hpp:34
static auto chunk(source_t &&source, xtd::usize size) -> xtd::collections::generic::enumerable_generator< xtd::array< xtd::iterable_value_type< source_t > > >
Splits the elements of a sequence into chunks of size at most size.
static auto skip_while(source_t &&source, auto &&predicate) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Bypasses elements in a sequence as long as a specified condition is true and then returns the remaini...
static auto order_by_descending(source_t &&source, key_selector_t &&key_selector) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Sorts the elements of a sequence in descending order according to a key.
typename xtd::collections::generic::ienumerable< type_t > ienumerable
Represents the ienumerable value type.
Definition enumerable_.hpp:90
static auto distinct(source_t &&source) noexcept -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Returns distinct elements from a sequence by using the default equality comparer to compare values.
static auto concat(first_t &&first, second_t &&second) noexcept -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< first_t > >
Concatenates two sequences.
static auto first_or_default(source_t &&source, prediacte_t &&predicate, xtd::iterable_value_type< source_t > &&default_value) noexcept -> xtd::iterable_value_type< source_t >
Returns the first element of the sequence that satisfies a condition, or a specified default value if...
static auto min(source_t &&source) -> xtd::iterable_value_type< source_t >
Returns the minimum value in a sequence of xtd::numeric values.
typename xtd::collections::generic::list< type_t > list
Represents the list value type.
Definition enumerable_.hpp:94
static auto select(source_t &&source, auto &&selector) -> xtd::collections::generic::enumerable_generator< result_t >
Projects each element of a sequence into a new form.
static auto default_if_empty(source_t &&source) noexcept -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Returns the elements of the specified sequence or the type parameter's default value in a singleton c...
static auto contains(source_t &&source, const xtd::iterable_value_type< source_t > &value) noexcept -> bool
Determines whether a sequence contains a specified element by using the default equality comparer.
static auto take(source_t &&source, xtd::usize count) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Returns a specified number of contiguous elements from the start of a sequence.
static auto count_by(source_t &&source, key_selector_t &&key_selector) noexcept -> xtd::collections::generic::enumerable_generator< xtd::collections::generic::key_value_pair< key_t, xtd::usize > >
Returns the count of elements in the source sequence grouped by key.
static auto all(source_t &&source, predicate_t &&predicate) -> bool
Determines whether all elements of a sequence satisfy a condition.
static auto shuffle(source_t &&source) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Shuffles the order of the elements of a sequence.
Definition random.hpp:277
static auto order(source_t &&source) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Sorts the elements of a sequence in ascending order.
static auto cast(source_t &&source) -> xtd::collections::generic::enumerable_generator< result_t >
Casts the elements of an xtd::collections::generic::ienumerable to the specified type.
static auto where(source_t &&source, auto &&predicate) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Filters a sequence of values based on a predicate.
static auto aggregate(source_t &&source, func_t &&func) -> xtd::iterable_value_type< source_t >
Applies an accumulator function over a sequence.
static auto as_enumerable(source_t &&source) noexcept
Returns the input typed as xtd::collections::generic::ienumerable <type_t>.
static auto average(source_t &&source) -> xtd::decimal
Computes the average of a sequence of xtd::decimal values.
static auto append(source_t &&source, xtd::iterable_value_type< source_t > &&element) noexcept -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Appends a value to the end of the sequence.
static auto order_by(source_t &&source, key_selector_t &&key_selector) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Sorts the elements of a sequence in ascending order according to a key.
static auto count(source_t &&source) noexcept -> xtd::usize
Returns the number of elements in a sequence.
static auto skip(source_t &&source, xtd::usize count) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Bypasses a specified number of elements in a sequence and then returns the remaining elements.
static auto max(source_t &&source) -> xtd::iterable_value_type< source_t >
Returns the maximum value in a sequence of xtd::numeric values.
static auto take_while(source_t &&source, auto &&predicate) -> xtd::collections::generic::enumerable_generator< xtd::iterable_value_type< source_t > >
Returns elements from a sequence as long as a specified condition is true, and then skips the remaini...
static auto any(source_t &&source) noexcept -> bool
Determines whether a sequence contains any elements.
Represents a range that has start and end indexes.
Definition range.hpp:28
Definition enumerable.hpp:17
Definition numeric.hpp:12
Contains foreach_ keyword.
Contains xtd::collections::generic::ienumerable <type_t> interface.
xtd::delegate< result_t(arguments_t... arguments)> func
Represents a delegate that has variables parameters and returns a value of the type specified by the ...
Definition func.hpp:27
std::size_t usize
Represents an unsigned size of any object in bytes.
Definition usize.hpp:22
xtd::func< bool, type_t > predicate
Represents a delegate that defines a set of criteria and determines whether the specified object meet...
Definition predicate.hpp:16
Contains xtd::linq::enumerable <type_t> class.
The xtd::extensions namespace contains interface extensions.
Definition collection_common.hpp:14
The xtd::collections::generic namespace contains interfaces and classes that define generic collectio...
Definition comparer.hpp:16
The xtd::collections namespace contains interfaces and classes that define various collections of obj...
Definition any_pair.hpp:10
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
constexpr auto size() const noexcept -> size_type
Returns the number of elements.
Definition read_only_span.hpp:231