Ein Element mit dem gleichen Schlüssel wurde bereits Hinzugefügt " c# Fehler
foreach (Benefit bene in claim.SubClaimFolderCollection[0].BenefitsFolder.BenefitCollection)
{
Dictionary<string, object> searchBeneficiary =
new Dictionary<string,object>();
searchBeneficiary.Add("rli_beneficiariesid", ((Guid)claimant.GetValue("rli_subclaimfolderid", true)));
}
Es gibt mir diese Fehlermeldung
"Ein Element mit demselben Schlüssel wurde bereits Hinzugefügt wurde, während das hinzufügen eines Artikels zum Wörterbuch.
- In meinem Projekt gibt es kein solches Wörterbuch, und auch, wenn Sie bemerkt haben, habe ich initialisiert es mit den neuen also es sollte nicht alles sein
- Sind Sie sicher, dass Sie den richtigen code gepostet?
- Können Sie erklären, was Sie versuchen zu erreichen? Er erklärt, das Wörterbuch in Ihrem foreach-Schleife sieht schon sehr merkwürdig aus, wie Sie effektiv auf die Beseitigung jeder iteration der Schleife. Jedoch kann nicht verstehen, warum Sie bekommen ein problem, die Schlüssel, die Hinzugefügt wird, die bereits aus dem obigen code.
- Ich wäre daran interessiert zu sehen, was das
SubClaimFolderCollection[0].GetValue
Methode tut. - Ya ich weiß, das ist seltsam, und ich habe gekämpft mit diesem aus alomost eine Stunde
- Ich bin sicher, es ist eine sehr einfache und logische Erklärung für den Fehler, aber, um es zu finden, müssen Sie zuerst herausfinden, welche Zeile den Fehler verursacht. Poste bitte den StackTrace.
- Ist es nicht möglich in Anspruch zu nehmen.SubClaimFolderCollection[0] da ist etwas komisch mit eine ganz andere Sammlung, wo es versucht, um readd den index 0 und das ist die Auslösung der Fehler und nicht searchBeneficiary?
- Hier ist der StackTrace StackTrace " im System.ThrowHelper.ThrowArgumentException(ExceptionResource-Ressource)\\r \ \ n bei System.Sammlungen.Generisches.Wörterbuch
2.Insert(TKey key, TValue value, Boolean add)\r\n at System.Collections.Generic.Dictionary
2.Add(TKey key, TValue value)" string - Zweimal: ich habe chnaged den code nun haben einen Blick auf Sie. ich glaube nicht, es könnte ein Grund sein.
- Das ist schlecht, pseudo-code oder code, welcher Art und Weise Sie es sehen. Das Wörterbuch bezieht sich falsch, und der Frager sollte überarbeiten zu generieren, bessere Antworten für die community.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie sicher, dass der Fehler kommt von hier? Es sieht aus wie in jeder iteration erstellen Sie ein neues Wörterbuch, das einfügen eines einzigen Eintrag in es, dann verwerfen Sie das Wörterbuch. Das sollte nicht diesen Fehler, und es ist auch sehr unwahrscheinlich zu sein, was Sie zu tun beabsichtigte.
Wenn Sie möchten, konvertieren Sie eine Sammlung zu einem Wörterbuch, das ich empfehle die Enumerable.ToDictionary - Methode (erfordert .NET 3.5).
2.Insert(TKey key, TValue value, Boolean add)\r\n at System.Collections.Generic.Dictionary
2.Add(TKey key, TValue value)" stringSieht es für mich aus wie die "rli_beneficiariesid" - Taste wird zweimal Hinzugefügt, um das Wörterbuch jedes mal durch die Schleife:
(Code kopiert und eingefügt von aktuellen code-Beispiel im original-post):
Beachten Sie, dass searchBeneficiary.Hinzufügen aufgerufen wird, mit "rli_beneficiariesid". Im inneren des Anruf Hinzufügen, searchBeneficiary.Hinzufügen aufgerufen wird, wieder mit dem gleichen Schlüssel.
Den Netto-Effekt scheint zu sein, dass eine guid (Antragsteller.GetValue) wird Hinzugefügt, um die searchBeneficiary Wörterbuch mit der "rli_beneficiariesid" - Taste und dann das Wörterbuch wird auf sich selbst Hinzugefügt mit dem gleichen Schlüssel!
Es scheint, dass der Fehler nicht hier zu erscheinen: neben einer single-pair-Mädchen, um ein leeres Dictionary... Bitte geben Sie eine vollständige Stapelüberwachung der Ausnahme.
2.Insert(TKey key, TValue value, Boolean add)\r\n at System.Collections.Generic.Dictionary
2.Add(TKey key, TValue value)" stringDieser code kann nicht dazu führen, den Fehler. 🙂
Bitte, poste den code der Kläger.GetValue (...) - Methode) und von Methoden/Eigenschaften, die es der Zugang von innen (wenn überhaupt). Ich nehme an, dass Sie möglicherweise sparen smth innerhalb dieser Methode auf einige andere Wörterbuch.