Объедините Func <Foo, object> и Action <object> - PullRequest
3 голосов
/ 22 июня 2011

У меня есть Func<Foo, object> и Action<object>, и я хотел бы объединить их в Action<Foo>, который объединяет мой Func и Action в одно действие, в котором результат Func передается в действие.Есть ли простой способ сделать это?

1 Ответ

6 голосов
/ 22 июня 2011

Самый общий метод, который я могу придумать, будет выглядеть примерно так:

Action<T1> Combine<T1, T2>(Func<T1, T2> func, Action<T2> action)
{
    return x => action(func(x));
}

Использование:

Func<Foo, object> func = x => x;
Action<object> action = Console.WriteLine;

Action<Foo> result = Combine(func, action);

result(new Foo());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...