请帮我把这个C#2.0片段转换成Linq

问题描述:

这不是功课;) 我需要A)优化以下代码(在TODO和TODO之间)和B)将它转换为[P] Linq 。需要更好的可读性。分别给A)和B)提供答案可能是有意义的。谢谢!请帮我把这个C#2.0片段转换成Linq

lock (Status.LockObj) 
{ 
    // TODO: find a better way to merge these dictionaries 
    foreach (KeyValuePair<Guid, Message> sInstance in newSInstanceDictionary) 
    { 
     this.sInstanceDictionary.Add(sInstance.Key, sInstance.Value); 
    } 

    foreach (KeyValuePair<Guid, Message> sOperation in newSOperationDictionary) 
    { 
     this.sOperationDictionary.Add(sOperation.Key, sOperation.Value); 
    } 
    // ~TODO 
} 

P.S.看看我的另一个赏金问题。

+3

是什么让你需要优化这段代码? – Lazarus 2010-04-21 14:46:52

看那Union操作:

return newSInstanceDictionary.Union(newSOperationDictionary).ToDictionary(x => x.Key, y => y.Value); 
+0

那不会返回一本字典。 – SLaks 2010-04-21 14:48:43

+0

@SLaks - 增加了“ToDictionary”调用。 – Oded 2010-04-21 14:51:14

没有LINQ的方法,这将有助于你在这里,但你可以使自己的扩展方法。

如果在该代码运行之前字典为空,则可以致电ToDictionary