list_utilities

A collection of basic extension methods for Iterables, Lists, and Sets.

See: num_utilities

Usage

import 'package:list_utilities/list_utilities.dart';

Iterable Methods

Methods extending Iterable are also be available on Lists, Sets, or any other implementation of Iterable.

random

The random method returns a random value from the iterable.

final numbers = [0, 1, 2, 3, 4];
print(numbers.random()); // 3 (or any of the other numbers.)

matches

The matches method returns true if the other iterable is the same length as the calling iterable and contains all of the same elements.

matches has an optional parameter, ordered, which if true, requires the elements of each iterable to be in the same order to satisfy matches.

final numbersA = {1, 2, 3, 4, 5};
final numbersB = {5, 4, 3, 2, 1};
print(numbersA.matches(numbersB)); // true
print(numbersA.matches(numbersB, ordered: true)); // false

List Methods

removeRandom

The removeRandom method removes and returns an element from the list at random.

final numbers = [0, 1, 2, 3, 4];
print(numbers.removeFirst()); // 3 (or any of the  other numbers.)
print(numbers); // [0, 1, 2, 4]

Note: removeRandom is included on Lists and Sets, but not Iterables because Iterables lack methods to remove elements without first converting it to a List or Set.

removeNull

The removeNull method removes all null values from the list.

final numbers = [0, 1, null, 3, null];
numbers.removeNull();
print(numbers); // [0, 1, 3]

removeFirst

The removeFirst method removes the first item from the list.

final numbers = [0, 1, 2, 3, 4];
print(numbers.removeFirst()); // 0
print(numbers); // [1, 2, 3, 4]

removeFirstWhere

The removeFirstWhere method iterates through the list and removes the first element that satisfies the test.

final numbers = [0, 1, 2, 3, 4];
numbers.removeFirstWhere((number) => number.isOdd);
print(numbers); // [0, 2, 3, 4]

removeLastWhere

The removeLastWhere method iterates through the list in reverse and removes the first element that satisfies the test.

final numbers = [0, 1, 2, 3, 4];
numbers.removeLastWhere((number) => number.isOdd);
print(numbers); // [0, 1, 2, 4]

resizeAndFill

The resizeAndFill method adds or removes elements from the list, setting any new values to the provided value.

final numbers = [0, 1, 2, 3, 4];
numbers.resizeAndFill(-2, 0);
print(numbers); // [0, 1, 2]
numbers.resizeAndFill(2, 0);
print(numbers); // [0, 1, 2, 0, 0]

resizeAndGenerate

The resizeAndGenerate method adds or removes elements from the list, setting any new values with the provided generator.

final numbers = [0, 1, 2, 3, 4];
numbers.resizeAndGenerate(5, (index) => index);
print(numbers); // [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
numbers.resizeAndGenerate(-5, (index) => index);
print(numbers); // [0, 1, 2, 3, 4]

removeFrom

The removeFrom method removes the specified number of elements, starting at the provided index.

final numbers = [0, 1, 2, 3, 4];
numbers.removeFrom(3, 2);
print(numbers); // [0, 1, 2]
numbers.removeFrom(0, 2);
print(numbers); // [2]

removeFromEnd

The removeFromEnd method removes the specified number of elements from the end of the list.

final numbers = [0, 1, 2, 3, 4];
numbers.removeFromEnd(2);
print(numbers); // [0, 1, 2]

Set Methods

removeRandom

The removeRandom method removes and returns an element from the set at random.

final numbers = {0, 1, 2, 3, 4};
print(numbers.removeFirst()); // 3 (or any of the  other numbers.)
print(numbers); // [0, 1, 2, 4]

Note: removeRandom is included on Lists and Sets, but not Iterables because Iterables lack methods to remove elements without first converting it to a List or Set.

+ operator

The + operator returns a new Set by appending the second Set's values to the end of the first Sets'.

final numbersA = {1, 2, 3};
final numbersB = {4, 5, 6};
print(numbersA + numbersB); // {1, 2, 3, 4, 5, 6}

Libraries

list_utilities
A collection of extension methods for Iterables, Lists, and Sets.