Получить значение слова по ключу
Как я могу получить значение словаря по ключу в функции
мой код функции - это (и команда, которую я пытаюсь, но не работает):
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
Ответы
Ответ 1
Это так просто:
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
Ответ 2
Это не работает 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
}
Ответ 3
Почему бы просто не использовать ключевое имя в словаре, С# имеет следующее:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("UserID", "test");
string userIDFromDictionaryByKey = dict["UserID"];
Если вы посмотрите на подсказку:
![введите описание изображения здесь]()
Ответ 4
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;
}
Ответ 6
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"];
}
Ответ 7
Я использую подобный метод для dasblinkenlight в функции, чтобы вернуть одно ключевое значение из Cookie, содержащего массив 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";
}
}
Где "MyCookinator.Get()" - еще одна простая функция Cookie, получающая общее значение cookie http cookie.
Ответ 8
Вот пример, который я использую в своем исходном коде.
Я получаю ключ и значение от словаря от элемента 0 до количества элементов в моем словаре. Затем я заполняю свой массив string [], который я отправляю как параметр после моей функции, которые принимают только params string []
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();
}
...
Надеюсь, это поможет вам и другим. Это решение также работает с SortedDictionary.
С уважением,
Озрен Сирола
Ответ 9
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'