remove

Reduces the length of the bidirectional range range by removing elements that satisfy pred. If s = SwapStrategy.unstable, elements are moved from the right end of the range over the elements to eliminate. If s = SwapStrategy.stable (the default), elements are moved progressively to front such that their relative order is preserved. Returns the filtered range.

  1. Range remove(Range range, Offset offset)
  2. Range remove(Range range)
    Range
    remove
    (
    Range range
    )

Parameters

range Range

a bidirectional ranges with lvalue elements or mutable character arrays

Return Value

Type: Range

the range with all of the elements where pred is true removed

Examples

static immutable base = [1, 2, 3, 2, 4, 2, 5, 2];

int[] arr = base[].dup;

// using a string-based predicate
assert(remove!("a == 2")(arr) == [ 1, 3, 4, 5 ]);

// The original array contents have been modified,
// so we need to reset it to its original state.
// The length is unmodified however.
arr[] = base[];

// using a lambda predicate
assert(remove!(a => a == 2)(arr) == [ 1, 3, 4, 5 ]);

Meta

Suggestion Box / Bug Report