C# 具有条件的LINQ ToArray()
给定以下数据集:C# 具有条件的LINQ ToArray(),c#,linq,C#,Linq,给定以下数据集: WharehouseId Sku OnHold InStock =========================================== 1 ABC-123 N 20 2 ABC-123 N 13 3 ABC-123 Y 4 4 ABC-123
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
项,但如果OnHold
等于'Y',则值应为0
。因此,在上面的数据集中,数组结果应该是:
{ 20, 13, 0, 18 }
我可以通过以下方式实现这一点:
int[] inStockQty = new int[4];
int i = 0;
foreach (var item in query)
{
inStockQty[i] = item.OnHold == 'N' ? item.InStock : 0;
i++;
}
但我想知道是否还有一种方法可以使用LINQ的ToArray()
?将条件移动到LINQ的Select
,如下所示:
var inStockQty = query.Select(item => item.OnHold == 'N' ? item.InStock : 0).ToArray();
您可以将条件移动到LINQ的选择中,如下所示:
var inStockQty = query.Select(item => item.OnHold == 'N' ? item.InStock : 0).ToArray();