在线程中已经添加了参数异常“具有相同键的项”

时间:2015-04-20 13:27:41

标签: c# multithreading dictionary

我有一个由线程调用的方法。我遇到项目已存在异常的字典问题。什么是可能的解决方案。我提供了我的场景代码和为克服这个问题所做的更改。 该方法由线程调用。

public Item[] GetFolders()
{
    Dictionary<long,string> values = new Dictionary<long,string> ();
    Dictionary<long,string> values2 = new Dictionary<long,string> ();

    var remotePage = service.GetPage();

    foreach(var remotesummary in remotePage)
    {
        values2.Add(remotesummary.id, remotesummary.name);
    }

    foreach(var remotesummary in remotePage)
    {
        values.Add(remotesummary.id, remotesummary.name);
    }
}

修改代码以克服异常&#34;&#34;

public Item[] GetFolders()
{
    Dictionary<long,string> values = new Dictionary<long,string> ();
    Dictionary<long,string> values2 = new Dictionary<long,string> ();

    foreach(var remotesummary in remotePage)
    {
        var remt = remotesummary;
        values.Add(remotesummary.id, remotesummary.name);
    }

    foreach(var remotesummary in remotePage)
    {
        var remt = remotesummary;
        values2.Add(rem.id, rem.name);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以在插入密钥之前检查该密钥是否已存在。将其添加到您的代码中

if (dict.ContainsKey(key)) { ... }

请注意,您需要为变量名更改dict:D