如何使用不同数量的参数使lambda具有lambda函数

时间:2014-01-13 19:10:11

标签: c# dictionary lambda delegates

如何使用lambda函数制作字典,即Func<>包含不同数量的参数?

Dictionary<string, Func<T, double>> operationsList 
  = new Dictionary<string, Func<T, double>>();

桅杆如此?

1 个答案:

答案 0 :(得分:1)

您可以将字典设为Delegate,但我非常确定以这种方式存储Func<>会很痛苦:

var dict = new Dictionary<int, Delegate>();
dict.Add(1, (Func<int, int>)((int x) => x * 10));
dict.Add(2, (Func<int>)(() => 10));

通话:

var result1 = dict[1].DynamicInvoke(10);
var result2 = dict[2].DynamicInvoke();