'What is the c# equivalent of Java 8 java.util.function.Consumer<>?

Is there an equivalent of this interface in C#?

Example:

Consumer<Byte> consumer = new Consumer<>();
consumer.accept(data[11]);

I have searched around Func<> and Action<> but I have no idea.

The original Java code of Consumer.accept() interface is pretty simple. But not for me:

void accept(T t);

/**
* Returns a composed {@code Consumer} that performs, in sequence, this
* operation followed by the {@code after} operation. If performing either
* operation throws an exception, it is relayed to the caller of the
* composed operation.  If performing this operation throws an exception,
* the {@code after} operation will not be performed.
*
* @param after the operation to perform after this operation
* @return a composed {@code Consumer} that performs in sequence this
* operation followed by the {@code after} operation
* @throws NullPointerException if {@code after} is null
*/
default Consumer<T> andThen(Consumer<? super T> after) {
    Objects.requireNonNull(after);
    return (T t) -> { accept(t); after.accept(t); };
}


Solution 1:[1]

Consumer<T> corresponds to Action<T> and the andThen method is a sequencing operator. You can define andThen as an extension method e.g.

public static Action<T> AndThen<T>(this Action<T> first, Action<T> next)
{
    return e => { first(e); next(e); };
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Lee