项目已添加.键入字典:

use*_*380 2 c# dictionary exception sortedlist

当我尝试添加项目时,我有一个应用程序挂起,当我检查跟踪文件时,我收到了这些条目

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

}
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,任何机构都有任何建议

Kev*_*tch 9

问题是在排序列表中,每个键都必须是唯一的.所以你需要检查你没有插入两次相同的密钥(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);
    }
 }
Run Code Online (Sandbox Code Playgroud)

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