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

时间:2010-04-21 14:41:10

标签: c#-3.0 performance c#-2.0 linq-to-objects readability

这不是作业;) 我需要A)优化以下代码(在TODO和~TODO之间)和B)将其转换为[P] Linq。需要更好的可读性。分别为A)和B)提供答案可能是有意义的。谢谢!

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。看看我的另一个赏金问题。

2 个答案:

答案 0 :(得分:1)

查看Union运算符:

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

答案 1 :(得分:1)

虽然您可以制作自己的扩展方法,但没有LINQ方法可以帮助您。

如果在此代码运行之前字典为空,则可以调用ToDictionary