[C#] 키로 사전 값을 얻습니다

함수의 키로 사전 값을 얻는 방법

내 함수 코드는 이것 (그리고 내가 시도했지만 작동하지 않는 명령) :

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로 기능을
문자열 XMLFILE = Settings.XML의



답변

다음과 같이 간단합니다.

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


답변

사전에 키 이름을 사용하지 않는 이유는 다음과 같습니다.

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

팁 제안을 보면 :

여기에 이미지 설명을 입력하십시오


답변

그것이 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
}


답변

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 ...
    }
}


답변

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"];
            }