it-swarm.com.de

wörterbuchwert mit der Taste abrufen

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

109
Matei Zoc

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
159
Blorgbeard

Warum verwenden Sie nicht nur den Schlüsselnamen im Wörterbuch?

 Dictionary<string, string> dict = new Dictionary<string, string>();
 dict.Add("UserID", "test");
 string userIDFromDictionaryByKey = dict["UserID"];

Wenn Sie sich den Tippvorschlag ansehen:

 enter image description here

37
FrenkyB

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
}
25
dasblinkenlight
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'
8
Mahadev Mane
static void XML_Array(Dictionary<string, string> Data_Array)
{
    String value;
    if(Data_Array.TryGetValue("XML_File", out value))
    {
     ... Do something here with value ...
    }
}
4
aqwert
          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"];
            }
2
Sumon Banerjee
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;
}
2
Jacek Lisiński

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

1
Shixx
if (Data_Array["XML_File"] != "") String xmlfile = Data_Array["XML_File"];
0