Search Results

Search found 1 results on 1 pages for 'musefan'.

Page 1/1 | 1 

  • Linq Select: Using a value from a list if available

    - by musefan
    I am going to use some basic stripped down examples to illustrate my problem. I have a class: class Item { int ID; bool Selected; } Now lets say I have two lists of the Item class: List<Item> ListA = GetListA(); List<Item> ListB = GetListB(); Now I want to create a third list that has all the items from ListB. The important thing is that if a match (same ID) if found in ListA then I want to use that Selected value, otherwise I want to keep the Selected value of the item that is in ListB. I am creating the third list as follows: List<Item> ListC = from item in ListB select new Item { ID = item.ID, Selected = item.Selected// <-- should use value form ListA if available }; Important: I don't want to seem ignorant, but I do not want to change the way ListC is created. By that I mean I want to use the "linq select" method, and I want to use a "one liner" that assigns the Selected value... I know there are other ways to create the list which will work just fine, but then I won't learn anything new. I have tried a couple of things so far... I know this will work, but I don't want to query ListA twice: Selected = ListA.Any(x => x.ID == item.ID) ? ListA.First(x => x.ID == item.ID).Selected : item.Selected and I also tried using DeafultIfEmpty but I don't think that is the right think for this situation... because it didn't work, and it seems it is more use if ListA was empty (which I don't care about)

    Read the article

1