কী দ্বারা অভিধান মান পান


181

কীভাবে আমি কীভাবে কী কার্যক্রমে অভিধান মান পেতে পারি

আমার ফাংশন কোডটি হ'ল (এবং কমান্ডটি আমি চেষ্টা করি তবে কার্যকর হয়নি):

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

উত্তর:


247

এটি এর মতোই সহজ:

String xmlfile = Data_Array["XML_File"];

মনে রাখবেন যে অভিধানে যদি সমান কী থাকে না তবে "XML_File"সেই কোডটি একটি ব্যতিক্রম ছুঁড়ে দেবে। আপনি যদি প্রথমে যাচাই করতে চান তবে আপনি ট্রাইগেটভ্যালুটি এভাবে ব্যবহার করতে পারেন:

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

72

অভিধানে কী কী নাম ব্যবহার করবেন না, সি # তে এটি রয়েছে:

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

আপনি যদি টিপস পরামর্শটি দেখুন:

এখানে চিত্র বর্ণনা লিখুন


4
কীটি উপস্থিত না থাকলে এটি একটি ব্যতিক্রম ছুঁড়ে দেয়। এ কারণেই অন্যান্য লোকের উত্তরগুলি আপনাকে ট্রিগেটভ্যালু ব্যবহার করা উচিত বলে পরামর্শ দেয়।
লাডিস্লাভ অ্যান্ডরিস

আমি মনে করি না কারণ এটি কারণ।
ফ্রেনকিবি

1
আপনি কি বোঝাতে চেয়েছেন?
লাডিস্লাভ অ্যান্ডরিস

1
আমি মনে করি না যে এটির কারণেই অন্যরা ট্রিগেটভ্যালু প্রস্তাব দিচ্ছেন। আমার সমাধানটি সরলীকরণ, যা সম্পর্কে আমি অবগত ছিলাম না। যখন আমি এটি খুঁজে পেয়েছি, আমি এটি এখানে আটকানো করেছি। এবং মনে হচ্ছে অন্য অনেক লোকও সে সম্পর্কে জানত না। অন্যথায়, তারা এই উত্তরটি পেস্ট করতে পারে এবং কী উপস্থিত না থাকলে ব্যতিক্রম ছুঁড়ে ফেলতে পারে। যাইহোক, সতর্কতার জন্য ধন্যবাদ।
ফ্রেনকিবি

31

যে কাজ করে না 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
}


5
static void XML_Array(Dictionary<string, string> Data_Array)
{
    String value;
    if(Data_Array.TryGetValue("XML_File", out value))
    {
     ... Do something here with value ...
    }
}

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

2
          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

এখানে আমি আমার উত্স কোড ব্যবহার করি যা উদাহরণ। আমি অভিধান থেকে মূল অভিধান থেকে আমার অভিধানে উপাদানের সংখ্যার থেকে কী এবং মান পাচ্ছি। তারপরে আমি আমার স্ট্রিং [] অ্যারেটি পূরণ করি যা আমি আমার ফাংশনটিতে প্যারামিটার হিসাবে প্রেরণ করি যা কেবলমাত্র প্যারাম স্ট্রিং গ্রহণ করে []

    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();
        }
    ...

আশা করি এটি আপনাকে এবং অন্যদের সহায়তা করবে। এই সমাধানটি सॉোর্টড ডিকোরিয়ানের সাথেও কাজ করে।

আন্তরিক শুভেচ্ছা,

ওজরেন সিরোলা


1

আমি কোনও ফাংশনে ড্যাসব্লিংকনলাইটে একই পদ্ধতি ব্যবহার করি যা অভিধানে বোঝা একটি JSON অ্যারে ধারণকারী কুকি থেকে একক কী মান ফেরত দিতে:

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

    }

যেখানে "মাইকুকিনেটর.গেট ()" হ'ল একটি সহজ কুকি ফাংশন যা একটি HTTP কুকি সামগ্রিক মান পাচ্ছে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.