Wie füllen Sie eine Eigenschaft eines Objekts aus einer anderen Liste mit LINQ

Ich habe 2 Listen von Objekten. Hat man Werte, die andere hat Namen und Werte. Ich möchte zum nachschlagen der Werte in die andere Liste und schreiben Sie das Ergebnis auf pref.Name. Ich weiß, ich kann dies tun mit einer foreach-Schleife, aber ich nehme an, es ist ein guter Weg, es zu tun in LINQ. Ideen?

public class Preference
    {
        public string Category { get; set; }
        public string Name { get; set; }
        public string ItemValue { get; set; }
        public int SortOrder { get; set; }
    }

public class SAPReadOnlyItem
    {
        public string Category { get; set; }
        public string Name { get; set; }
        public string ItemValue { get; set; }
    }

    List<Preference> preferences = getExistingUserPreferences(UserID, ddlCategory.SelectedValue); //this list is just keys
    List<SAPReadOnlyItem> sapReadOnlyItems = getSAPReadOnlyItems(ddlCategory.SelectedValue); //this list is names and keys

    //i want to look up the name from sapReadOnly using the ID from preferences and write it into preferences[n].Name

    //this works, but I want to write it into preferences[n].Name
    var foobar = (from sap in sapReadOnlyItems
                  join pref in preferences 
                  on sap.ItemValue equals pref.ItemValue
                  select new { asdf = sap.Name }).FirstOrDefault(); //instead of "select new" I want to write it into preferences[n].Name
InformationsquelleAutor dogeter | 2012-10-16
Schreibe einen Kommentar