2011-05-10 80 views
3

我最近使用此網站獲取代碼以從對象列表中提取屬性值數組(我已經搜索過一遍又一遍,找不到原來的職位或幫助的更新:()根據條件從列表中創建數組屬性值

這是結果:

qtyArray.AddRange(plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0).ToArray()); 

問題是,我有其他性質即時輸出轉換成並行陣列傳遞到數據源,但寧願忽視任何錯誤的「主動」屬性,所以對於所有的數組做類似上面的事情,但只有在c.active == true的地方:

plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0 **WHERE c.active**) 

任何人都可以幫忙嗎?

回答

3

這個怎麼樣:

plan.Components.Where(c => c.active).Select (c => c.qty.HasValue ? (int)c.qty.Value : 0) 

應該做必要的過濾。

+0

看起來像一個,我敢肯定有一些更多的方法,但這種要求幾乎沒有任何的重構。 A +。 – 2011-05-10 11:02:30

0
plan.Components.Select(c => c.qty.HasValue ? (int)c.qty.Value : 0 && (c.active == null ? false : c.active)); 

採取不過,請注意它會假設,如果主動爲null,則主動爲假