2011-05-10 61 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,则主动为假