Dart Iterables: Operations on Iterables

Dart Iterables: Operations on Iterables

1. forEach:

  • Applies a function to each element of the iterable.
List<int> numbers = [1, 2, 3, 4, 5];

numbers.forEach((int number) {
  print(number); // Output : 1 2 3 4 5 
});

2. map:

  • Transforms each element of the iterable using a function.
List<int> numbers = [1, 2, 3, 4, 5];

List<String> stringNumbers = numbers.map((int number) {
  return 'Number: $number'; // output : ['Number: 1', 'Number: 2', 'Number: 3', 'Number: 4', 'Number: 5']
}).toList();

3. where:

  • Filters elements based on a condition.
List<int> numbers = [1, 2, 3, 4, 5];

List<int> evenNumbers = numbers.where((int number) {
  return number % 2 == 0; // Output : [2, 4]
}).toList();

4. any:

  • Checks if any element satisfies a given condition.
int> numbers = [1, 2, 3, 4, 5];

bool hasEvenNumber = numbers.any((int number) {
  return number % 2 == 0; // Output : true
});

5. every:

  • Checks if every element satisfies a given condition.
List<int> numbers = [1, 2, 3, 4, 5];

bool allEvenNumbers = numbers.every((int number) {
  return number % 2 == 0; // Output: false
});

6. toList, toSet:

  • Converts the iterable to a List or Set.
int> numbers = [1, 2, 3, 4, 5];

List<int> numbersList = numbers.toList();
Set<int> numbersSet = numbers.toSet();
 // Output : numbersList: [1, 2, 3, 4, 5]
  //          numbersSet: {1, 2, 3, 4, 5}

7. reduce:

  • Combines the elements of the iterable using a provided function.
List<int> numbers = [1, 2, 3, 4, 5];

int sum = numbers.reduce((value, element) => value + element);
// Output : Sum: 15

8. fold:

  • Similar to reduce, but allows specifying an initial value.
List<int> numbers = [1, 2, 3, 4, 5];

int sum = numbers.fold(0, (value, element) => value + element);
// Output : Sum: 15

These operations provide powerful ways to manipulate and transform iterables in Dart. Depending on your use case, you can choose the appropriate operation to achieve the desired result.