Question: I have a class:

```
public class Member 
{    public string header {get;set;}    
     public List<Member> MemberCollection {get;set;} 
}

```

so i have List lstMembers;
that contains like this:

```
MemberA
   |_____ header = HeadingMemberA
   |
   |_____ List<Member> = Member A.1
                    |___ Member A.2
                    |___ Member A.3

MemberB
   |_____ header = HeadingMemberB
   |
   |_____ List<Member> = Member B.1
                    |___ Member B.2
                    |___ Member B.3

```

so now i have to get 1st Member in each level.

list **MemberA, Member A.1, MemberB and Member B.1**

Answer: 
Something like this:

```
List<Member> firstLevels = new List<Member>();
foreach(Member m in lstMembers)
{
   firstLevels.Add(m);
   firstLevels.Add(m.MemberCollection.First());
}

```
well, `Member A` & `Member B` are not first on their level

but if mean to get `Member A.1, Member B.1 ...`

```
members.Select(MemberList => MemberList.MemberCollection.FirstOrDefault()).ToList();

```