c# - 如何解决 "Item has already been added. Key in dictionary:"错误?

标签 c# dictionary exception sortedlist

我有一个应用程序,当我试图向它添加项目时挂断了。当我检查跟踪文件时,我得到了这个条目:

   for (int i=0; i<objects.Count; i++) 
   {
      DataModelObject dmo = (DataModelObject)objects.GetAt(i);
      sl.Add(dmo.Guid, dmo);
   }

}

我不知道如何解决这个问题。

最佳答案

问题在于,在排序列表中,每个键都必须是唯一的。所以你需要检查你没有插入相同的键(guid 值)两次。代码如下:

 for (int i=0; i<objects.Count; i++) 
 {        
    DataModelObject dmo = (DataModelObject)objects.GetAt(i);

    if (!sl.ContainsKey(dmo.Guid))
    {
        sl.Add(dmo.Guid, dmo);
    }
 }

这将确保每个 key 都是唯一的。但是,如果您希望每个键有多个值,那么您需要使用不同类型的集合。

关于c# - 如何解决 "Item has already been added. Key in dictionary:"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631789/

相关文章:

c# - 在 c# (Vsto) 的 Excel 2007 中保存 Excel 模板 2003 时出现问题

c# - 反序列化子类中的匿名顶级数组

c# - 异步命令模式——异常处理

c++ - 了解执行流程的异常处理

c# - 如何在另一个位置创建数据库而不是默认哺乳 c :\Users\USER in ASP. NET Core 2.2

c# - 静态方法和线程

python - 将值追加到Python中具有现有或不存在键的字典中的列表

python - 使用字典对 NumPy 数组进行切片

python - 如何在嵌套字典中搜索给定值

java - Android拦截未处理的异常