给出以下数据集:
{{table|safe}}
我需要创建一个返回WharehouseId Sku OnHold InStock
===========================================
1 ABC-123 N 20
2 ABC-123 N 13
3 ABC-123 Y 4
4 ABC-123 N 18
项的int[]
数组,但如果InStock
等于0
,则该值应为OnHold
。所以在上面的数据集中,数组结果应为:
'Y'
我能够通过以下方式实现这一目标:
{ 20, 13, 0, 18 }
但我想知道是否还有办法使用LINQ的int[] inStockQty = new int[4];
int i = 0;
foreach (var item in query)
{
inStockQty[i] = item.OnHold == 'N' ? item.InStock : 0;
i++;
}
?
答案 0 :(得分:7)
您可以将条件移动到LINQ' Select
,如下所示:
var inStockQty = query.Select(item => item.OnHold == 'N' ? item.InStock : 0).ToArray();