gpt4 book ai didi

c# - 使用正则表达式删除字典条目

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:42 26 4
gpt4 key购买 nike

我正在尝试从字典中删除一个条目(注意:关联数组上下文)。删除是基于给定的数字。任意数量的键都可以包含该数字加上其他文本。我目前正在做的是..

var results = from result in CGlobals.orders.Keys
where Regex.IsMatch(result, cmbJobNum.Text + "*")
select result;

foreach (string result in results)
CGlobals.orders.Remove(result);

我收到一个无效操作异常,表明集合已被修改。我在这里做错了什么,我该如何解决?

最佳答案

问题是 LINQ 中的延迟执行。使用这个:

var results = (from result in CGlobals.orders.Keys
where Regex.IsMatch(result, cmbJobNum.Text + "*")
select result).ToList();

foreach (string result in results)
CGlobals.orders.Remove(result);

解释:
LINQ 中的延迟执行功能不会在您定义它的地方执行查询,而只会在您枚举它时执行查询,即在 foreach 循环中。这意味着,您正在遍历 CGlobals.orders.Keys 枚举,同时从字典中删除项目,这将更新键枚举。

关于c# - 使用正则表达式删除字典条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com