Я озадачен (снова) неправильным пониманием XDocument / Linq.Для приведенного ниже XML у меня есть nameEn
и provinceCode
в качестве переменных в моем коде.Я пытаюсь определить code
(например, s0000002
) и nameFr
, учитывая, что у меня есть два других элемента.Объединенные provinceCode
и NameEn
уникальны в XML (без дублирования).
<siteList>
<site code="s0000001">
<nameEn>Edmonton</nameEn>
<nameFr>Edmonton</nameFr>
<provinceCode>AB</provinceCode>
</site>
<site code="s0000002">
<nameEn>Algonquin Park</nameEn>
<nameFr>Parc Algonquin</nameFr>
<provinceCode>ON</provinceCode>
</site>
...
</siteList>
Вот код, который я пытаюсь (мой XML находится в «загруженном» XDocument:
selectedProvince = "ON";
selectedCity = "Algonquin Park";
strSiteCode = loaded.Descendants("site")
.Where(x => x.Element("provinceCode").Value == selectedProvince)
.Where(x => x.Element("nameEn").Value == selectedCity)
.Select(x => x.Element("code").Value)
.ToString();
strNameFR = loaded.Descendants("site")
.Where(x => x.Element("provinceCode").Value == selectedProvince)
.Where (x => x.Element("nameEn").Value == selectedCity)
.Select(x => x.Element("nameFr").Value)
.ToString();
Строка strSiteCode
возвращает: System.Linq.Enumerable+WhereSelectEnumerableIterator
2 [System.Xml.Linq.XElement, System.String] and
strNameFR returns
"" `.
Я не могувыяснить, как должен выглядеть рабочий код. Спасибо за любую помощь.
Дуг