假设我有一个返回字典的方法如下:
private Dictionary<string, int> GetWorktypeDictionaryList()
{
return new Dictionary<string, int>()
{
{"Select",-1},{"New MSC",1},{"Expansion",2},{"Migration",3},{"Upgrade",4},{"Relocation",5},{"Feature",6}
};
}
现在在main方法中我想用小写字母值添加字典键。为了这些目的,我使用Action委托。代码如下:
Dictionary<string,int> dict = new Dictionary<string, int>();
Action<KeyValuePair<string, int>> action =
act => dict.Add(act.Key.ToLower(), act.Value);
foreach (KeyValuePair<string,int> pair in GetWorktypeDictionaryList())
{
action(new KeyValuePair<string, int>(pair.Key,pair.Value));
}
但我想在下面的两行中实现这三行代码。
Dictionary<string,int> dict = new Dictionary<string, int>();
GetWorktypeDictionaryList().ToList().ForEach(act => dict.Add(act.Key.ToLower(), act.Value));//Here is the problem how to invoke Action.
但我无法在这些场景中调用Action。请一些高级程序员朋友帮助我这样做。
答案 0 :(得分:1)
您可以使用ToDictionary()
:
dict = GetWorktypeDictionaryList()
.ToDictionary(kvp => kvp.Key.ToLower(), kvp => kvp.Value);
我不确定当您在第二个示例中嵌入Action
时,{{1}}是如何进行播放的。