我有两本词典,我正在查看其中一本词典,并且只有当其他词典中相同键的值超过5时才想进行数学运算。
如何正确制作if语句?
foreach (var word in dict1)
{
temp = word.Value;
// something like this:
if (temp in dict2 > 5)
{
A *= temp;
}
else
{
// do nothing
}
}
答案 0 :(得分:1)
如果您对dict1和dict2使用词典:
foreach(var word in dict1.Where(w=>dict2.ContainsKey(w.Key) && dict2[w.Key]>5))
{
//dowork
}
这只迭代dict1中dict2中值大于5的项,并且有些工作。
编辑:添加了dict2.ContainsKey(w.Key)检查Where子句,因为dict2可能不包含dict1中的键。
答案 1 :(得分:0)
这样的事情,更好的错误处理,应该这样做。这假定word.key
是用于在dict2
中查找值的正确密钥。
if (dict2[word.key] > 5)
{
A *= temp;
}
答案 2 :(得分:0)
正如ASh所说的那样:
if(dict2[word.Key]>5){}
答案 3 :(得分:0)
从已提到的内容中走出一条重要的路线
dict1.Keys
.Intersect(dict2.Keys) // We only care about keys in both dictionaries
.Where(k => dict2[key] > 5)// We only care when the value in dict2 is greater than 5
.Select(l => dict1[k]) // Get the values from dict1