我有一个Func<Foo, object>
和Action<object>
,并希望将这些组合成Action<Foo>
,它将我的Func和Action合并为一个Action,其中Func的结果传递给Action 。有一种直截了当的方法吗?
答案 0 :(得分:6)
我能想到的最通用的方法是这样的:
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());