Click here to Skip to main content
15,436,489 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
I've got the following setup:

C#
class A
{
   ObservableCollection Bs {get;set;}
}
class B
{
   string Title {get; set;}
   ObservableCollection<C> Cs {get;set;}
}
class C
{
   string Title {get;set;}
}


I'm trying to get a list of unique Title's in the entire of A.
So far I've got
C#
var bTitles = A.Bs.Select(f=> f.Title).Distinct();
var cTitles = A.Bs.Select(f=> f.Cs).Select(h=> h.Select(g=> g.Title));

return bTitles.Union(cTitles);


But that's not right, I can't 'flatten' cTitles, at least I think that's what I've got wrong.
Posted

1 solution

C#
var titles = A.Bs
                .Select(b => b.Title)
                .Union(A.Bs.SelectMany(b => b.Cs, (b, c) => c.Title))
                .Distinct();
 
Share this answer
 
Comments
cjb110 31-Oct-12 9:43am    
Excellent thanks!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900