271

関数のキーで辞書の値を取得するにはどうすればよいですか?

私の機能コード(および私が試したコマンドは機能しません):

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":
4

11 に答える 11

367

次のように簡単です。

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
于 2012-08-29T00:42:22.267 に答える
114

辞書のキー名を使用するだけです。C# には次のようなものがあります。

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

ヒントの提案を見ると:

ここに画像の説明を入力してください

于 2016-09-29T06:42:17.527 に答える
38

それは仕組みではありませんTryGetValue。キーが見つかったかどうかに基づいてtrueorを返し、キーが存在する場合はそのパラメーターを対応する値に設定します。falseout

キーが存在するかどうかを確認し、欠落しているときに何かを実行するには、次のようなものが必要です。

bool hasValue = Data_Array.TryGetValue("XML_File", out value);
if (hasValue) {
    xmlfile = value;
} else {
    // do something when the value is not there
}
于 2012-08-29T00:42:43.233 に答える
6
static void XML_Array(Dictionary<string, string> Data_Array)
{
    String value;
    if(Data_Array.TryGetValue("XML_File", out value))
    {
        // ... Do something here with value ...
    }
}
于 2012-08-29T00:42:47.710 に答える
5
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;
}
于 2014-01-08T18:00:57.217 に答える
3
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"];
}
于 2014-01-23T14:01:30.603 に答える
2

次のように、関数内で 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 の全体的な値を取得するもう 1 つの単純な Cookie 関数です。

于 2014-04-18T00:53:23.107 に答える