我有一个应用程序,当我试图向它添加项目时挂断了。当我检查跟踪文件时,我得到了这个条目:
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/