通过键获取字典值
如何通过键function获取字典值
我的function代码是这个(和命令我尝试,但没有工作):
static void XML_Array(Dictionary<string, string> Data_Array) { String xmlfile = Data_Array.TryGetValue("XML_File", out value); }
我的button代码是这样的
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
函数上
stringxmlfile = Settings.xml
这很简单:
String xmlfile = Data_Array["XML_File"];
请注意,如果字典没有等于"XML_File"
的键,则该代码将引发exception。 如果你想先检查一下,可以这样使用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
这不是TryGetValue
工作方式。 它根据是否find密钥返回true
或false
,如果key存在,则将其out
参数设置为相应的值。
如果你想检查钥匙是否在那里,当它失踪时做一些事情,你需要这样的东西:
bool hasValue = Data_Array.TryGetValue("XML_File", out value); if (hasValue) { xmlfile = value; } else { // do something when the value is not there }
为什么不在字典上使用键名,C#有这样的:
Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("UserID", "test"); string userIDFromDictionaryByKey = dict["UserID"];
如果你看看小费build议:
static void XML_Array(Dictionary<string, string> Data_Array) { String value; if(Data_Array.TryGetValue("XML_File", out value)) { ... Do something here with value ... } }
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; }
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"]; }
我使用了一个类似于dasblinkenlight函数的方法来从包含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函数。
这里是我在我的源代码中使用的例子。 我从字典中获取键和值从元素0到我的字典中的元素的数量。 然后我填充我的string[]数组,我发送作为参数后,在我的函数只接受参数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(); } ...
希望这会帮助你和其他人。 这个解决scheme也适用于SortedDictionary。
亲切的问候,
奥兹伦西罗拉
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'