如何使用 LINQ (C# 3.0) 更改 IDictionary 的内容
如何使用 C# 3.0(Linq、Linq 扩展)更改 IDictionary 的内容?
var enumerable = new int [] { 1, 2};
var dictionary = enumerable.ToDictionary(a=>a,a=>0);
//some code
//now I want to change all values to 1 without recreating the dictionary
//how it is done?
How do I alter the contents of an IDictionary using C# 3.0 (Linq, Linq extensions) ?
var enumerable = new int [] { 1, 2};
var dictionary = enumerable.ToDictionary(a=>a,a=>0);
//some code
//now I want to change all values to 1 without recreating the dictionary
//how it is done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这并不像其他方法那么清楚,但它应该可以正常工作:
我的另一个替代方案是制作一个与此类似的 ForEach 扩展方法:
然后像这样使用它:
但这在这种情况下不起作用,因为 Value不能分配给。
This is not nearly as clear as other ways, but it should work fine:
My other alternative would have been to make a ForEach extension method similar to this:
Then use it like this:
This won't work in this case though, as Value cannot be assigned to.
LINQ 是一种查询方言 - 它并不是直接的突变语言。
要更改现有字典的值,
foreach
可能是您的朋友:LINQ is a query dialect - it isn't directly a mutation language.
To change the values of an existing dictionary,
foreach
is probably your friend:不过,我想知道为什么你可能需要做这样的事情。
I wonder why you might a need doing such a thing, though.