c# 循环内使用匿名函数关联变量的问题

cs 复制代码
for (int i = 0; i < dict.Count; i++) 
{ 
    Action action = () => Test(i, true); 
}

由于闭包(closures)的行为,循环内使用匿名函数关联变量i会导致问题。运行此循环后,所有action将使用的是限定范围内i的最终值,而非每次迭代时的值。

要解决此问题,可以在每次迭代中引入新的局部变量,下面是示例:

cs 复制代码
for (int i = 0; i < dict.Count; i++) 
{ 
    var j = i;
    Action action = () => Test(j, true); 
}
相关推荐
Qlittleboy6 分钟前
PHP的接口参数传递的过多,max_input_vars = 5000
开发语言·php
Reart6 分钟前
Leetcode 674.最长连续递增序列 (719)
后端·算法
Aurorar0rua7 分钟前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法
sun03229 分钟前
【笔记】Spring MVC 相关介绍
java·spring·mvc
Reart10 分钟前
Leetcode 300.最长递增子序列(719)
算法
可编程芯片开发14 分钟前
VSG虚拟同步发电机simulink建模与仿真
算法
en.en..15 分钟前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水21 分钟前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
Reart29 分钟前
Leetcode 714.买卖股票的最佳时机含手续费(719)
后端·算法
cui_ruicheng30 分钟前
Python从入门到实战(十三):模块、包与环境管理
开发语言·python