为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 C# 中的 lambda 表达式中删除列表项?

如何从 C# 中的 lambda 表达式中删除列表项?

C#
DIEA 2021-11-21 18:11:57
如果我有这个private static List<Action> actions = new List<Action>();private static void Main(){    for (var i = 0; i < 10; i += 1)    {        Action action = async () => {            // want to remove this specific lambda item from the "actions" variable.             // is there something like this:            /*                Action this_action = this;                actions.Remove(this_action);            */        };        actions.Add(action);    }    Parallel.Invoke(actions.ToArray());    Console.Write("\nPress any key to exit...");    Console.ReadKey();}如何从列表中正确删除它。我需要某种自我参考?
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以仅使用 to 的引用action来删除操作的实例。关闭将确保引用指向正确的对象。


for (var i = 0; i < 10; i += 1)

{

    Action action = null;

    action = () => {

        actions.Remove(action);

    };


    actions.Add(action);

}


Parallel.Invoke(actions.ToArray());

有关工作示例,请参阅Fiddle。


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信