LINQ ToArray()有条件的

时间:2017-09-26 15:28:29

标签: c# linq

给出以下数据集:

{{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++; }

1 个答案:

答案 0 :(得分:7)

您可以将条件移动到LINQ' Select,如下所示:

var inStockQty = query.Select(item => item.OnHold == 'N' ? item.InStock : 0).ToArray();