2017-06-04 77 views
0

我有很多對象,都是同一類型。只包含一個int Id屬性,其餘的屬性是布爾標誌,也是其中的一大部分。組合/合併布爾屬性多個對象C#

問題:怎樣才能將它們組合起來,創建一個新的對象與flag[x] = true,其中物體中的至少一個具有flag[x] = true, else flag[x] = false。 (對不起,這說明欠佳,我的英語不太好...)

(僞代碼):

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

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

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

將導致

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

我想過使用LINQ對Source進行分組,然後迭代組,手動創建新對象。

有沒有更好的方法?

回答

0

一種解決方案可能是通過您的收藏迭代,並檢查是否真實存在:

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

然後hasFirstPropertyTrue,hasSecondPropertyTrue ......如果有至少一個真正在你的屬性將是真實的

+0

謝謝@Patatrack。我會嘗試這種方式。 不知道C#中有一個複合賦值運算符。額外的感謝! :-) –