wie ändern Sie den Wert des Wörterbuches mit linq basiert auf Schlüssel?

Ich habe ein Wörterbuch, das ist der Typ,

  Dictionary<string, string> newdictionary = new Dictionary<string, string>();
  newdictionary.Add("12345", "chip1");
  newdictionary.Add("23456", "chip2");

Nun habe ich eine Liste, die den Typ

   internal class CustomSerial
    {
        public string SerialNo { get; set; }
        public decimal ecoID { get; set; }
    } 
   var customList = new List<CustomSerial>();
   CustomSerial custObj1= new CustomSerial();
   custObj1.ecoID =1;
   custObj1.SerialNo = "12345";
   customList.Add(custObj1);
   CustomSerial custObj2 = new CustomSerial();
   custObj2.ecoID = 2;
   custObj2.SerialNo = "23456";
   customList.Add(custObj2);

Nun muss ich das update das Erste Wörterbuch Filtern Sie die Tasten mit ther SerialNumber und Ersetzen Sie die Werte mit den ecoID.

Wenn ich es versuchen, es gibt

  foreach (KeyValuePair<string, string> each in newdictionary)
  {                       
    each.Value = customList.Where(t => t.SerialNo == each.Key).Select(t => t.ecoID).ToString();
  }

System.Sammlungen.Generisches.KeyValuePair.Wert kann nicht zugewiesen werden -- Sie sind schreibgeschützt

Was ist serials ? Abgesehen davon, dass LIN(Q) ist ein tool zur Abfrage nicht aktualisieren.
ja newdictionary
foreach wird verwendet, um ermittelt werden die Daten aus der Erfassung wissen Sie das ?
ja, ich weiß, aber versucht zu ersetzen, die nach Erlangung Schlüssel zu Kraft zu arbeiten, omiting, gibt es eine Möglichkeit zu überprüfen, für die Schlüssel und Werte zu aktualisieren?
Ihre ToString() auf Ihre Letzte Zeile des Codes ist unwahrscheinlich, dass zu tun, was Sie wollen.

InformationsquelleAutor Sajeetharan | 2014-07-03

Schreibe einen Kommentar