字典<string,list <int =“”>&gt;复制到另一个词典</string,>

时间:2013-03-09 21:02:12

标签: c# dictionary

我将数字的值复制到另一个字典时遇到问题。 一切顺利,但是如果密钥已经存在,我只要将List中的值添加到另一个字典中。我不明白如何将相同的值添加到字典以及通过。

   foreach (KeyValuePair<string, List<int>> record in dictonaryUnStem)

        {
            arrayWord = record.Key.ToCharArray();
            st.add(arrayWord);
            stemWord = st.stem();

            if (!dictonaryStem.ContainsKey(stemWord))
            {
                dictonaryStem.Add(stemWord, record.Value);
            }
            else
            {
                foreach (int i in record.Value)
                {
                    dictonaryStem[stemWord].Add(i);
                }
            }
        }

从给定的键整数添加到另一个字典时。我们加入了我的记录,也是整数字典UnStem。这是完全不合逻辑的。

stemWord = st.stem() 

给我根词,这是第一本词典中的关键词。在列表中存储文本中该单词的位置。

1 个答案:

答案 0 :(得分:7)

问题在于:

dictonaryStem.Add(stemWord, record.Value);

您正在将字典值设置为原始列表的引用List<T>是引用类型) - 因此当您向该列表添加项目时,它也会显示在字典 - 都引用相同的列表。

相反,您可以强制为字典强制创建新列表:

dictonaryStem.Add(stemWord, record.Value.ToList());