Помогите составить LINQ-запрос
Код:
Dictionary<int, string> sn_offices;
Dictionary<string, string> region_offices;
Dictionary<string, string> subdistrict_region;
Dictionary<string, string> region_offices;
Dictionary<string, string> subdistrict_region;
во второй коллекции хранится зависимость "область - контролирующая организация" (организация может курировать несколько областей),
в третей коллекции хранится зависимость "район - область" (в одной области находится несколько районов).
Получить все серийные номера для определённой области я могу с помощью следующей конструкции:
Код:
var serials =
from office in sn_offices
join reg in region_offices.Where(r => r.Key == "Московская обл.")
on office.Value equals reg.Value into regGroup
from rg in regGroup
select tu.Key;
from office in sn_offices
join reg in region_offices.Where(r => r.Key == "Московская обл.")
on office.Value equals reg.Value into regGroup
from rg in regGroup
select tu.Key;
Если возможно покажите вариант в linq-синтаксисе и lambda-синтаксисе. Предпочтительно в linq-синтаксисе. (lambda интересует только в образовательных целях).
Переделал структуру данных к виду
Код:
var listSN = Dictionary<int, string[]>();
listSN.Add(1, new[]{"ОрганизацияХ", "областьХ", "регионХ"});
listSN.Add(1, new[]{"ОрганизацияХ", "областьХ", "регионХ"});
Для примера поиск серийных номеров по определённой организации:
Код:
var sn =
from sn in listSN
where sn.Value[0] == "название искомой организации"
select sn.Key;
from sn in listSN
where sn.Value[0] == "название искомой организации"
select sn.Key;
Код:
var sn =
from sn in listSN
where sn.Value[1] == "искомая область"
select sn.Key;
from sn in listSN
where sn.Value[1] == "искомая область"
select sn.Key;
Всем спасибо.