2011-01-14 7 views
3

私はこのような構造体があります。LINQチャレンジ

public struct MyStruct 
{ 
    public string Name; 
    public bool Process; 
} 

をそして、私はこのような体mystructのリストがあります:

"123"、真

"123"、偽の

"234"、真

"345"、偽

"456"、真

"456"、偽

私はこのようなリストを返すためにLINQを使用することにしたい:

"123"、偽

"234"、真

"345"、偽

「456」、偽

だから基本的に私が望む結果がブールフラグと一緒に明確な名前(「123」、「234」、...など)のリストであり、名前がある場合私はフラグを "AND"演算する必要があります。

単一のLINQステートメントでこれを行う簡単な方法はありますか?

答えて

10
var result = input.GroupBy(e => e.Name) 
        .Select(gr => new { Name = gr.Key, 
             All = gr.All(e => e.Process) }); 
+0

Timwi、それは速く、それは私が探しているまさにです。私は非常に近いですが、私はすべての部分を把握していませんでした。ありがとうございました。 – notlkk

1
public struct MyStruct 
{ 
    public string Name; 
    public bool Process; 
}  

public void LinqCellenge() 
{ 
    var sourceList = Enumerable.Empty<MyStruct>(); 

    var resultList = sourceList 
     .GroupBy(item => item.Name, (name, values) => new MyStruct() 
     { 
      Name = name, 
      Flag = values.All(x => x.Flag) 
     }); 
} 
関連する問題