2017-06-04 8 views
0

私は1トンのオブジェクトを持っています。すべて同じタイプです。唯一、int Idプロパティを含み、残りのプロパティはブールフラグであり、それらのトンも含まれます。ブールプロパティの結合/マージ複数のオブジェクトC#

質問:どのようにそれらを組み合わせて、オブジェクトの少なくとも一方がflag[x] = true, else flag[x] = falseを持ってflag[x] = trueで新しいオブジェクトを作成することができます。例(擬似コード)

(...この悪い説明のために申し訳ありませんが、私の英語は良いことではありません):

result = {0815, **true**, false, **true**, **true**} 

につながるものと

lst[0] = {0815, **true**, false, false, false} 

lst[1] = {0815, false, false, **true**, false} 

lst[2] = {0815, false, false, false, **true**} 

私は考えましたLINQを使用してSourceをグループ化し、グループを反復して新しいオブジェクトを手動で作成します。

良い方法がありますか?

答えて

0

一つの解決策は、あなたのコレクションを反復処理して真が存在するかどうかを確認することができます

bool hasFirstPropertyTrue = false; 
bool hasSecondProprertyTrue = false; 
[...] 
foreach(item in yourCollection) 
{ 
hasFirstProprertyTrue |= item.FirstProperty; 
hasSecondPropertyTrue |= item.SecondProperty; 
[...] 
} 

その後hasFirstPropertyTrue、hasSecondPropertyTrue ...あなたの特性で本当の少なくとも一つがある場合はtrueになります

+0

ありがとう@パタントラック。私はこのように試してみる。 C#に複合代入演算子があることを知らなかった。余分にありがとう! :-) –