Wie erhalte ich den Wörterbuchwert per Taste bei Funktion
mein Funktionscode ist dies (und der Befehl, was ich versuche, aber nicht funktionierte):
static void XML_Array(Dictionary<string, string> Data_Array)
{
String xmlfile = Data_Array.TryGetValue("XML_File", out value);
}
mein knopfcode ist dieser
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);
}
Ich möchte so etwas wie:
auf XML_Array
Funktion zu sein
string xmlfile = Settings.xml
So einfach ist das:
String xmlfile = Data_Array["XML_File"];
Wenn das Wörterbuch keinen Schlüssel hat, der gleich "XML_File"
ist, wird durch diesen Code eine Ausnahme ausgelöst. Wenn Sie zuerst prüfen möchten, können Sie TryGetValue wie folgt verwenden:
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
So funktioniert die TryGetValue
nicht. Es gibt true
oder false
basierend darauf zurück, ob der Schlüssel gefunden wurde oder nicht, und setzt seinen out
-Parameter auf den entsprechenden Wert, wenn der Schlüssel vorhanden ist.
Wenn Sie prüfen möchten, ob der Schlüssel vorhanden ist oder nicht, und etwas tun, wenn er fehlt, benötigen Sie Folgendes:
bool hasValue = Data_Array.TryGetValue("XML_File", out value);
if (hasValue) {
xmlfile = value;
} else {
// do something when the value is not there
}
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'
static void XML_Array(Dictionary<string, string> Data_Array)
{
String value;
if(Data_Array.TryGetValue("XML_File", out value))
{
... Do something here with 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);
}
static void XML_Array(Dictionary<string, string> Data_Array)
{
String xmlfile = Data_Array["XML_File"];
}
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;
}
Ich verwende eine ähnliche Methode wie dasblinkenlight in einer Funktion, um einen einzelnen Schlüsselwert aus einem Cookie mit einem in ein Dictionary geladenen JSON-Array wie folgt zurückzugeben:
/// <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 ()" ist eine weitere einfache Cookie-Funktion, die einen Gesamtwert für ein http-Cookie erhält.
Hier ist ein Beispiel, das ich in meinem Quellcode verwende ... Ich bekomme key und value from Dictionary von Element 0 bis zur Anzahl der Elemente in meinem Dictionary. Dann fülle ich mein string [] -Array, das ich als Parameter nach in meiner Funktion sende, das nur params string [] akzeptiert.
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();
}
...
Hoffe, das wird dir und den anderen helfen. Diese Lösung funktioniert auch mit SortedDictionary.
Mit freundlichen Grüßen,
Ozren Sirola
if (Data_Array["XML_File"] != "") String xmlfile = Data_Array["XML_File"];