-4

私はクラスを持っています:

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

だから私はリストlstMembersを持っています。次のように含まれています:

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

だから今、私は各レベルで最初のメンバーを取得する必要があります.

MemberA、Member A.1、MemberB、および Member B.1 をリストします。

4

3 に答える 3

4

このようなもの:

List<Member> firstLevels = new List<Member>();
foreach(Member m in lstMembers)
{
   firstLevels.Add(m);
   firstLevels.Add(m.MemberCollection.First());
}
于 2013-05-30T07:55:30.163 に答える
0

まあ、Member AMember B彼らのレベルで最初ではありません

しかし、取得することを意味する場合Member A.1, Member B.1 ...

members.Select(MemberList => MemberList.MemberCollection.FirstOrDefault()).ToList();
于 2013-05-30T07:57:27.143 に答える
0

LINQ の使用が許可されている場合は、コレクションに式を作成できます。order by 句で SelectMany 演算子を使用します。

注: 次のコードは、アイデアを実証するためのものであり、構文 /case の問題を無視します。

var members = new List<Member>();
var q = members.SelectMany(m => m.MemberCollection).Orderby(o=>o.Name).FirstOrDefault()
 .ToList();
于 2013-05-30T07:57:49.143 に答える