返回元组时将 foreach 转换为变量赋值
Convert foreach to variable assign when returning a Tuple
使用 .NET Framework 4.7.2,我有一个函数 return 是一个元组,然后 returned 值被传递给 foreach 循环中的另一个函数:
foreach ((var price, var discount) in Calculator.Compute(period, calculationComponent))
{
var rows = CreateCalculationRows(price, discount, otherParameters);
}
Compute
函数声明如下:
public static IEnumerable<(Price price, DiscountInfo discount)> Compute(Price price, CalcComponent calcComponent) {
...
}
代码工作正常,但我想删除 foreach 循环,因为 Calculator.Compute() 函数,在某些特定条件下,在这种特定情况下,returns 是一个单一的排。我无法简化 Compute() return 对象,因为它用于许多其他函数。
如何更改代码以删除 foreach,以便 CreateCalculationRows() 正确接收参数?
我希望这样的事情能奏效——只需要一个结果并解构它:
(var price, var discount) = Calculator.Compute(period, calculationComponent).Single();
var rows = CreateCalculationRows(price, discount, otherParameters);
使用 .NET Framework 4.7.2,我有一个函数 return 是一个元组,然后 returned 值被传递给 foreach 循环中的另一个函数:
foreach ((var price, var discount) in Calculator.Compute(period, calculationComponent))
{
var rows = CreateCalculationRows(price, discount, otherParameters);
}
Compute
函数声明如下:
public static IEnumerable<(Price price, DiscountInfo discount)> Compute(Price price, CalcComponent calcComponent) {
...
}
代码工作正常,但我想删除 foreach 循环,因为 Calculator.Compute() 函数,在某些特定条件下,在这种特定情况下,returns 是一个单一的排。我无法简化 Compute() return 对象,因为它用于许多其他函数。
如何更改代码以删除 foreach,以便 CreateCalculationRows() 正确接收参数?
我希望这样的事情能奏效——只需要一个结果并解构它:
(var price, var discount) = Calculator.Compute(period, calculationComponent).Single();
var rows = CreateCalculationRows(price, discount, otherParameters);