And*_*ndy 1 c# linq dictionary
我知道必须有更好的方法来做到这一点......也许是LINQ?如果我删除一个值,它会使迭代器无效,这就是为什么我在无限循环内部重新启动进程的原因.我正在寻找一种更容易阅读,维护并最终更快的方法.这是我得到的:
Dictionary<string, string> Channels = //...;
while (true)
{
var bFound = false;
foreach(var c in Channels)
{
if(c.Value == version)
{
Channels.Remove(c.Key);
bFound = true;
break;
}
}
if (!bFound) { break; }
}
Run Code Online (Sandbox Code Playgroud)
感谢您帮助优化此例程.
根据您的示例,您似乎正在根据与版本值的比较进行删除.
Channels = Channels.Where(x=> x.Value != version)
.ToDictionary(c => c.Key, c => c.Value);
Run Code Online (Sandbox Code Playgroud)