У меня есть файл ресурсов я захватить как это:словарь словарей
var rs = <somewhere>.FAQ.ResourceManager
.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
, и я хочу, чтобы разобрать его в словарь словарей, но я не могу понять, как совсем. это то, что я пытаюсь:
var ret = rs.OfType<DictionaryEntry>()
.Where(x => x.Key.ToString().StartsWith("Title"))
.ToDictionary<string, Dictionary<String, string>>(
k => k.Value.ToString(),
v => rs.OfType<DictionaryEntry>()
.Where(x => x.Key.ToString().StartsWith(v.Value.ToString().Replace("Title", "")))
.ToDictionary<string, string>(
key => key.Value,
val => val.Value
)
);
так, если я понимаю правильно, k
следует обратиться к DictionaryEntry и, таким образом, я должен быть в состоянии разыменовать это как k.Value
и изготовить свой словарь в каждом из внешнего словаря записи Я делаю другой запрос к файлу ресурсов, поэтому key
и val
также должны быть типа DictionaryEntry.
При ссылке val.Value
Я получаю сообщение об ошибке «Невозможно выбрать метод из группы методов. Вы намеревались вызвать метод?» хотя это должно быть свойство, а не метод.
help?
p.s. в качестве объяснения, мой файл ресурсов выглядит вроде этого:
TitleUser: User Questions
TitleCust: Customer Questions
User1: Why does something happen? Because…
User2: How do I do this? Start by…
Cust1: Where can I find…? It is located at…
Cust2: Is there any…? yes, look for it…
, который означает, что я сначала получить список разделов (путем поиска всех ключей, которые начинаются с «Title») и для каждого я смотрю на список вопросов
Боковое примечание: попробуйте разделить свой код на отдельные операторы или лучше на отдельные функции с хорошими именами ... Вы не сможете прочитать эту линию LINQ на следующий день. –
О, да, спасибо за отрицательный рейтинг на моем посту, кто бы вы ни были. действительно полезно. – ekkis