【发布时间】:2021-12-22 16:31:45
【问题描述】:
foreach (var (counter, _, _) in Count())
{
... // do stuff with counter
}
return counter;
counter 在foreach 之后超出范围,因此上述方法不起作用。
如何在循环之后使用迭代变量之一,而不是
int latestCounter;
foreach (var (counter, _, _) in Count())
{
... // do stuff with counter
latestCounter = counter;
}
return latestCounter;
【问题讨论】:
-
你的解决方案有什么问题?
-
由于
Count()在foreach循环中工作,它必须返回IEnumerable<>类型。为什么不直接使用System.Linq中的Last()而使用return Count().Select(_ => _.Item1).Last();? -
这是一个XY问题的例子,你想达到什么目的?
-
@OmarAbdelBari 迭代两次
-
除非有你没有显示的代码然后没有,这完全消除了
foreach循环的需要。
标签: c# foreach scope valuetuple deconstructor