Function differenceBy

Same as difference except you can make it operatete on a publicly accessible member of ElementType!Range

auto auto differenceBy(string member, alias pred, Range, Rs...) (
  Range range,
  Rs values
)
if (isRangeOverValidPredicate!(pred, Range));

Parameters

NameDescription
member which member in ElementType!Range to find difference over
pred unary transformation or binary comparator
range the range to inspect
values ranges or single values to exclude

See Also

difference

Since

0.0.1

Example

struct A {
    int value;
}
// with normal difference
assert([A(1), A(2), A(3)].difference!((a, b) => a.value < b.value)([A(2), A(3)]).equal([A(1)]));

// by using the By() version
assert([A(1), A(2), A(3)].differenceBy!"value"([A(2), A(3)]).equal([A(1)]));