2016-04-26 1 views
0

las ich diese Artikel:Fehler für Wörterbuch, KeyValuePair und Verändern der Daten von einem Schlüssel

First, second und third, die zum Löschen Artikel nur für den Fall ist, aber ich bin zu löschen sie nicht.

Mein Code:

Dictionary<String, Object> tempList =(Dictionary<String,Object>)_ersetzeDasMitDas; 

       //pfadFuerDieBildDatei 
       foreach (KeyValuePair<string, Object> tempData in tempList) 
       { 
        if (tempData.Key.Equals("fahrzeugGruppe")) 
        { 
         if (tempData.Value!=null) 
         { 
          if (tempData.Value.Equals("LKW")) 
          { 
           tempList["pfadFuerDieBildDatei"]= Path.Combine(VirtualMachineKonstanten.statischeDateien, "lkw.png"); 
          } 
          else if (tempData.Value.Equals("Transporter")) 
          { 
           tempList["pfadFuerDieBildDatei"]= Path.Combine(VirtualMachineKonstanten.statischeDateien, "transporter.png"); 
          } 
          else 
          { 
           tempList["pfadFuerDieBildDatei"]= Path.Combine(VirtualMachineKonstanten.statischeDateien, "pkw.png"); 
          } 

         } 
         else 
         { 
          //todo: logge Error "fahrzeugGruppe", der Wert ist null ?! 
          //erstmal für Testing 
          tempList["pfadFuerDieBildDatei"]= Path.Combine(VirtualMachineKonstanten.statischeDateien, "pkw.png"); 
         } 
        } 
      } 

ich:

Auflistung wurde geändert; Enumerationsoperation möglicherweise nicht ausgeführt

nach dem Schreiben tempList["pfadFuerDieBildDatei"] und wieder in die Schleife gehen.

Wie löst man das?

+0

'IEnumerable > ErsetzeDasMitDas' Unterschrift – kkkk00999

Antwort

0

den folgenden Code verwenden, um die aktualisierbaren Elemente in der Sammlung zu erhalten, dann durch die neue Kollektion iterieren und die Updates tun:

var updatableCollection= tempList.Where(x => 
          x.Key.Equals("fahrzeugGruppe") && x.Value != null) 
          .ToDictionary(x=> x.Key, x=> x.Value); 
foreach (var item in updatableCollection) 
{ 
    // check if (item.Value.Equals("LKW")) 
    // update the required field 
    // rest of condition and updates 
} 
+0

ich der selbe Fehler, wenn 'var updatableCollection = tempList.Where (x => x.Key.Equals (" fahrzeugGruppe ")) . ToDictionary (x => x.Key, x => x.Wert); foreach (var Element in updatableCollection) { updatableCollection ["PfadFuerDieBildDatei"] = Pfad.Kombinieren (VirtualMachineKonstanten.statistikDateien, "pkw.png"); } ' – kkkk00999

Verwandte Themen