2017-09-16 59 views
1

基本上,我需要使用LINQ將ParameterInfo[]的數組轉換爲RouteValueDictionary通過LINQ將ParameterInfo []轉換爲RouteValueDictionary

我發現了從MethodInfo對象(通過反射)的ParameterInfo[]陣列,通過調用obj.GetParameters(),我需要從一個RouteValueDictionary對象。

我想這一點,但遺憾的是它不工作:

new RouteValueDictionary(obj.GetParameters().Select(r => new { r.Name = r.DefaultValue })) 

回答

2

RouteValueDirectory有一個構造得到了字典和:

初始化RouteValueDictionary類的新實例,並將從要素指定的集合。

因此使用LINQ的ToDictionary形成字典,然後將匹配的構造函數:

new RouteValueDictionary(obj.GetParameters().ToDictionary(key => key.Name, 
                  value => value.DefaultValue }))