Microsoft Developer Network > Forums Home > Archived Forums Forums > LINQ Project General > Linq subquery from observablecollection.
Ask a questionAsk a question
 

AnswerLinq subquery from observablecollection.

  • Thursday, November 05, 2009 4:02 PMZest4Quest Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I have an ObservableCollection which contains types of the following
    class Customer
    {
      public string Name;
      public bool IsSelected;
      public ObservableCollection<InnerType> items;
    }

    class InnerType
    {
      public string ItemName;
      public bool bought;
    }

    Now i want to create a Dictionary<string,List<string> using a Linq query.. where the key in the dictionary would be "Name" from Customer type  where IsSelected == true and the Values (List<string>) would be all "ItemName" entries in "items" where bought == true. Can i achieve this with one query?
    Thanks in advance.. 

Answers

  • Thursday, November 05, 2009 5:11 PMAhmad Mageed Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    How about this:

    list.Where(c => c.IsSelected)
        .Select(c => new
        {
            Name = c.Name,
            ItemNames = c.items.Where(i => i.bought).Select(i => i.ItemName).ToList()
        })
        .ToDictionary(c => c.Name, c => c.ItemNames);
    

    Document my code? Why do you think it's called "code"?
    • Marked As Answer byZest4Quest Thursday, November 05, 2009 6:53 PM
    •  

All Replies

  • Thursday, November 05, 2009 5:11 PMAhmad Mageed Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    How about this:

    list.Where(c => c.IsSelected)
        .Select(c => new
        {
            Name = c.Name,
            ItemNames = c.items.Where(i => i.bought).Select(i => i.ItemName).ToList()
        })
        .ToDictionary(c => c.Name, c => c.ItemNames);
    

    Document my code? Why do you think it's called "code"?
    • Marked As Answer byZest4Quest Thursday, November 05, 2009 6:53 PM
    •