2017-06-30 3 views

答えて

2

あなたは、メインのオブジェクトのシーケンスを平らにするSelectManyを使用する必要があります。

プロジェクトにIEnumerableをシーケンスの各要素を1つのシーケンスに 結果のシーケンスを平坦化します。

は、だから、FlatListオブジェクトのシーケンスに各メインオブジェクトを投影した後、1つのFlatListシーケンスに結果のシーケンスを平坦化

var flatList = mainList.SelectMany(m => 
    m.Owners.Select(o => 
     new FlatList { 
       Id = m.Id, 
       Name = m.Name, 
       OwnerId = o.Id, 
       OwnerName = o.Name 
     })).ToList() 
2
List<Main> mainList = ... 
var flatList = (
    from main in mainList 
    from owner in main.Owners 
    select new FlatList { 
     Id = main.Id, Name = main.Name, 
     OwnerId = owner.Id, OwnerName = owner.Name 
    }).ToList(); 
1

あなたが行うことができますLINQを使用して(舞台裏の秘密のループ):

from m in mainList 
from o in m.Owners 
select new FlatList 
{ 
    Id = m.Id, 
    Name = m.Name, 
    OwnerId = o.OwnerId , 
    OwnerName = o.OwnerName 
}; 
関連する問題