根据条件从列表创建属性值数组

时间:2011-05-10 10:50:53

标签: c# arrays linq list

我最近使用此网站获取代码以从对象列表中提取属性值数组(我一次又一次地搜索,无法找到原始帖子或有关更新的帮助:()

结果如下:

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**)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

这个怎么样:

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

它应该进行必要的过滤。

答案 1 :(得分:0)

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

请注意,它会假设如果active为null,则active为false