#c# #dictionary
#c# #dictionary
Вопрос:
У меня есть словарь, из которого я хочу во время выполнения получить элемент из него, используя параметр, который был передан.
var field = @"['IconDescription'].Value";
var dictionary = (defaultOutcome).ToDictionary(xs => xs.Field);
dictionary field;
var field = @"['IconDescription'].Value";
var dictionary = (defaultOutcome).ToDictionary(xs => xs.Field);
Итак, мне нужно получить элемент с ключевым IconDescription из словаря и получить его свойство Value, аналогичное следующему результату:
dictionary["IconDescription"].Value
Комментарии:
1. Уже есть два голоса, чтобы закрыть ваш вопрос за то, что он неясен. Если словарь имеет тип ключа
string
, то вы можете просто обратиться к словарю какdictionary["Key"]
, который вернет соответствующее значение или выдаст исключение. Я чувствую, что это не то, о чем вы спрашиваете. Если вы хотите использовать строку для направления этого, вам придется разобрать строку самостоятельно.2. Мне нужно получить ключ, используя переменную field (это будет параметр в моем методе), и он изменится
3. Откуда берется «поле»? Я имею в виду, почему невозможно просто передать ключ? Конечно, с помощью регулярных выражений можно извлечь ключ из
field
, но причина для этого остается загадкой.4. Вам нужно разобрать @»[‘IconDescription’].Value» и получить из этого описание имени ключа IconDescription?
5. @SvetlanaMeleshkina, да, это то, чего я хочу. Какое это поле мне нужно, описание значка элемента и его значение
Ответ №1:
Попробуйте эту функцию для синтаксического анализа вашего параметра
private string Parse(string input)
{
Regex regex = new Regex("^(\[\')(\w )(\'\]\.Value)");
var match = regex.Match(input);
return match.Success ? match.Groups[2].ToString() : string.Empty;
}