2015-03-06 4 views
0
public IDictionary<IContextType, IDictionary<string, string>> MasterScopeVariablesTable 
         = new Dictionary<IContextType, IDictionary<string, string>>(); 

У меня есть словарь словарей с ключевыми словами. Я хотел бы использовать LINQ для запроса записи LAST из любого словаря, содержащего «ключ» с именем «Состояние». Словари имеют одни и те же ключи с разными значениями.Как запросить словарь словарей с Linq?

Подобно этой ссылке Query a Dictionary of Dictionaries?

Но это может быть сделано в одном вызове без цикла Еогеасп, кто-нибудь знает как?

+6

объясните 'LAST' здесь? Заказ в 'IDictionary' не гарантируется, рассмотрим' IOrderedDictionary' –

+0

Они в порядке, когда они были созданы. Я уверен в этом, потому что я использую метод IDispose для удаления последнего ключевого словаря из мастера. –

+3

подумайте еще раз http://stackoverflow.com/questions/4007782/the-order-of-elements-in-dictionary, эти элементы могли быть в этом порядке в вашем тестировании. Вы хотите написать код, который работает в вашем тестировании или все время? – Jodrell

ответ

-1
var res = (from ctx in MasterScopeVariablesTable from ctxDict in ctx.Value where ctxDict.Key == key select ctxDict.Value).Last(); 

Это правильный ответ для тех, кто хотел бы его увидеть. В основном потому, что я не мог найти ни одного ответа на этот точный вопрос в другом месте.

Смежные вопросы