有这样的错误:无法修改 'System.Collections.Generic.Dictionary.this[string]' 的返回值,因为它不是变量。`
My code:
Dictionary<string, lim> urlsLimited = new Dictionary<string, lim>();
struct lim
{
public int min;
public int max;
}
void main ()
{
....
foreach (KeyValuePair<string, lim> pair in urlsLimited)
{
string like = od.LikeDiscussions(pair.Key);
if (like == "Like")
{
lock (locker)
{
urlsLimited[pair.Key].min++; // error
}
}
}
....
}
如何迭代 urlsLimited[pair.Key].min++?
您需要将值分配给局部变量,执行增量,然后将其设置回字典。
foreach (KeyValuePair<string, lim> pair in urlsLimited)
{
string like = od.LikeDiscussions(pair.Key);
if (like == "Like")
{
lock (locker)
{
lim val = pair.Value;
val.min++;
urlsLimited[pair.Key] = val;
}
}
}
要获得更好的解释,请参阅 Jon Skeet 对相关问题的回答:https://stackoverflow.com/a/6255368/1149773 https://stackoverflow.com/a/6255368/1149773.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)