我在C#中声明了一个字典。但我无法通过foreach访问它。
Dictionary<int,string>dic=new Dictionary<int,string>()
{
{78,"A"},
{81,"B"},
{90, "C"}
}
现在我想将其整数值与其他变量(count)进行比较。如果匹配则它将给出相应的字符串值。如何通过for循环访问字典? 我试过这样的。
foreach(int p in dic.Value)
{
if(dic.ContainsKey(p)==count)
{
Console.WriteLine(dic.Values(p));
}
}
它不起作用。在任何网站都找不到任何东西。提前帮助。
答案 0 :(得分:4)
我不确定你在这里要问的是什么。但是,下面是如何使用foreach遍历字典的键值对。
var dic = new Dictionary<int, string>
{
{78, "A"},
{81, "B"},
{90, "C"}
};
//To loop over the key value pairs of a dictionary
foreach (var keyValue in dic)
{
Console.WriteLine("This is the key: {0}",keyValue.Key);
Console.WriteLine("This is the value: {0}", keyValue.Value);
}
但是,我认为这就是你要做的事情,它不需要循环来查找密钥是否包含在字典中。
const int count = 78;
if (dic.ContainsKey(count))
{
Console.WriteLine(dic[count]);
}
else
{
Console.WriteLine("The dictionary does not contain the key: {0}", count);
}
正如@john在评论中提到的那样,您也可以使用Dictionary.TryGetValue
来获取指定键的值
string value;
var success = dic.TryGetValue(count, out value);
if (success)
Console.WriteLine("The dictionary value is: {0}", value);
答案 1 :(得分:3)
你可以这样使用foreach迭代:
foreach(KeyValuePair<int, string> pair in dic)
{
if(pair.Key==count)
Console.WriteLine(pair.Value);
}
答案 2 :(得分:1)
尝试example.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> dictionary =
new Dictionary<string, int>();
dictionary.Add("apple", 1);
dictionary.Add("windows", 5);
// See whether Dictionary contains this string.
if (dictionary.ContainsKey("apple"))
{
int value = dictionary["apple"];
Console.WriteLine(value);
}
// See whether it contains this string.
if (!dictionary.ContainsKey("acorn"))
{
Console.WriteLine(false);
}
}
}