2017-02-07 4 views
2

から重複要素を削除するには、だから私は、このクラス構造を持っている:のLINQ:グループオブジェクトとその子要素

public class ObjectCode 
{ 
    public string Code { get; set; } 
} 

class Configuration 
{ 
    public int Id { get; set; } 

    public string Name { get; set; } 

    public IEnumerable<ObjectCode> Objects { get; set; } 
} 

は私が複数のプロバイダからConfigurationのリストを受け付けております。私の問題は、これらのオブジェクトをIDでグループ化する方法がわからず、結果として得られるエンティティ内のすべてのConfigurationオブジェクトの別のObjectCodeオブジェクトを配置することです。

答えて

2

GroupBy内の各グループ内で使用SelectMany

var res = congigs 
    .GroupBy(c => new {c.Id, c.Name}) 
    .Select(g => 
     new Configuration { 
      Id = g.Key.Id 
     , Name = g.Key.Name 
     , Objects = g 
       .SelectMany(c => c.Objects) 
       .GroupBy(c => c.Code) 
       .Select(gg => gg.First()) 
     } 
    ).ToList(); 

以上が同じIdConfigオブジェクトも同じName Sを有していることを前提としています。

+0

はい、それは私が探していた答えでした。私は許可されるとすぐにそれを受け入れます。ありがとうございました。 –

関連する問題