2016-05-18 3 views
1

2つのリストを結合して2つのリストに結合しようとしています。同時にリストとサブリストを結合する

ツイスト:リストの1つは空(Count == 0)にすることができます。ここで

は私がやろうとしているかを示すためにいくつかのPOCOクラスです:以下

class Location 
{ 
    public string Name { get; set; } 
    public List<Item> Items { get; set; } 
} 

class Item 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

私がやろうとしている正確に何を示すいくつかの写真があります。あなたが見ることができるように、私はリストを組み合わせて、すべてが明確であることを確認したい。

ここでは、簡単にそれで遊ぶことができますので、設定したコードです:http://pastebin.com/Pa4dfebd

enter image description here

enter image description here

enter image description here

答えて

1

Nameは、場所の識別子であるとのIDItem

List<Location> joinedList = dbList.Concat(guiList) // put both into the same box 
    .GroupBy(l => l.Name) 
    .Select(locGrp => new Location 
    { 
     Name = locGrp.Key, 
     Items = locGrp 
      .SelectMany(l => l.Items) // select all items of this group 
      .GroupBy(i => i.Id)  // group by item-id 
      .Select(g => g.First()) // removes duplicates 
      .ToList()     // create list 
    }).ToList(); 

あなたはこのGroupByアプローチを使用することができます

関連する問題