Shows how to use xtd::linq::enumerable::aggregate method.
#include <xtd/xtd>
auto main() -> int {
auto fruits = array<string> {"apple", "mango", "orange", "passionfruit", "grape"}.items();
auto longest_name =
from(fruits).aggregate("bananas",
[](const string& longest, const string& next) {return next.length() > longest.length() ? next : longest;},
[](const string& fruit) {return fruit.to_upper();});
console::write_line("The fruit with the longest name is {}", longest_name);
}