如何在List中存储代理

如何将委托(命名,匿名,lambda)存储在通用列表中? 基本上我正在尝试构建一个委托字典,从中我可以使用密钥访问存储的委托并执行它并按需返回值。 是否可以在C#4中完成? 有什么想法来完成它吗? 注意:异类列表更适合存储任何类型的委托。

System.Collections.Generic.Dictionary不够吗?

嗯,这是一个简单的例子:

 class Program { public delegate double MethodDelegate( double a ); static void Main() { var delList = new List {Foo, FooBar}; Console.WriteLine(delList[0](12.34)); Console.WriteLine(delList[1](16.34)); Console.ReadLine(); } private static double Foo(double a) { return Math.Round(a); } private static double FooBar(double a) { return Math.Round(a); } } 
  public delegate void DoSomething(); static void Main(string[] args) { List lstOfDelegate = new List(); int iCnt = 0; while (iCnt < 10) { lstOfDelegate.Add(delegate { Console.WriteLine(iCnt); }); iCnt++; } foreach (var item in lstOfDelegate) { item.Invoke(); } Console.ReadLine(); } 
  Dictionary> fnDict = new Dictionary>(); Func fn = (a) => a + 1; fnDict.Add("1", fn); var re = fnDict["1"](5);