如何在功能
上按键获取字典值我的功能代码就是这个(以及我尝试的命令但是没有用):
static void XML_Array(Dictionary<string, string> Data_Array)
{
String xmlfile = Data_Array.TryGetValue("XML_File", out value);
}
我的按钮代码是这个
private void button2_Click(object sender, EventArgs e)
{
Dictionary<string, string> Data_Array = new Dictionary<string, string>();
Data_Array.Add("XML_File", "Settings.xml");
XML_Array(Data_Array);
}
我想要这样的事情:
在XML_Array
功能上
string xmlfile = Settings.xml
答案 0 :(得分:178)
这很简单:
String xmlfile = Data_Array["XML_File"];
请注意,如果字典没有等于"XML_File"
的密钥,则该代码将引发异常。如果您想先检查,可以像这样使用TryGetValue:
string xmlfile;
if (!Data_Array.TryGetValue("XML_File", out xmlfile)) {
// the key isn't in the dictionary.
return; // or whatever you want to do
}
// xmlfile is now equal to the value
答案 1 :(得分:45)
为什么不在字典上使用密钥名称,C#就是这样:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("UserID", "test");
string userIDFromDictionaryByKey = dict["UserID"];
如果你看一下提示建议:
答案 2 :(得分:26)
这不是TryGetValue
的工作原理。它会根据是否找到密钥返回true
或false
,如果密钥在那里,则将其out
参数设置为相应的值。
如果您想检查密钥是否存在,并在缺少密钥时执行某些操作,则需要以下内容:
bool hasValue = Data_Array.TryGetValue("XML_File", out value);
if (hasValue) {
xmlfile = value;
} else {
// do something when the value is not there
}
答案 3 :(得分:11)
Dictionary<String,String> d = new Dictionary<String,String>();
d.Add("1","Mahadev");
d.Add("2","Mahesh");
Console.WriteLine(d["1"]);// it will print Value of key '1'
答案 4 :(得分:4)
static void XML_Array(Dictionary<string, string> Data_Array)
{
String value;
if(Data_Array.TryGetValue("XML_File", out value))
{
... Do something here with value ...
}
}
答案 5 :(得分:3)
static String findFirstKeyByValue(Dictionary<string, string> Data_Array, String value)
{
if (Data_Array.ContainsValue(value))
{
foreach (String key in Data_Array.Keys)
{
if (Data_Array[key].Equals(value))
return key;
}
}
return null;
}
答案 6 :(得分:2)
private void button2_Click(object sender, EventArgs e)
{
Dictionary<string, string> Data_Array = new Dictionary<string, string>();
Data_Array.Add("XML_File", "Settings.xml");
XML_Array(Data_Array);
}
static void XML_Array(Dictionary<string, string> Data_Array)
{
String xmlfile = Data_Array["XML_File"];
}
答案 7 :(得分:1)
我在函数中使用类似于dasblinkenlight的方法,从包含加载到Dictionary中的JSON数组的Cookie中返回单个键值,如下所示:
/// <summary>
/// Gets a single key Value from a Json filled cookie with 'cookiename','key'
/// </summary>
public static string GetSpecialCookieKeyVal(string _CookieName, string _key)
{
//CALL COOKIE VALUES INTO DICTIONARY
Dictionary<string, string> dictCookie =
JsonConvert.DeserializeObject<Dictionary<string, string>>
(MyCookinator.Get(_CookieName));
string value;
if (dictCookie.TryGetValue( _key, out value))
{
return value;
}
else
{
return "0";
}
}
其中“MyCookinator.Get()”是获取http cookie整体价值的另一个简单Cookie函数。
答案 8 :(得分:1)
以下是我在源代码中使用的示例。 我从Dictionary中将键和值从元素0添加到我的词典中的元素数量。然后我填充我的string []数组,我在我的函数中发送后作为参数,只接受params string []
Dictionary<string, decimal> listKomPop = addElements();
int xpopCount = listKomPop.Count;
if (xpopCount > 0)
{
string[] xpostoci = new string[xpopCount];
for (int i = 0; i < xpopCount; i++)
{
/* here you have key and value element */
string key = listKomPop.Keys.ElementAt(i);
decimal value = listKomPop[key];
xpostoci[i] = value.ToString();
}
...
希望这会对你和其他人有所帮助。此解决方案也适用于SortedDictionary。
亲切的问候,
Ozren Sirola
答案 9 :(得分:-1)
if (Data_Array["XML_File"] != "") String xmlfile = Data_Array["XML_File"];
答案 10 :(得分:-1)
Dictionary<int,string> dict = new Dictionary<int,string>{
{1,"item1"},
{2,"item2"},
{3,"item3"},
}
int key = 2 // for example
string result = dict.TryGetValue(key,out_) ? dict[key] : null;