Я пытаюсь понять LINQ и начинаю со страницы MSDN:
http://msdn.microsoft.com/library/bb308960.aspx#xlinqoverview_topic2f
Здесь он ссылается на пример XML
<contacts>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
<address>
<street1>123 Main St</street1>
<city>Mercer Island</city>
<state>WA</state>
<postal>68042</postal>
</address>
<netWorth>10</netWorth>
</contact>
<contact>...
и говорит, что следующий список выкачает список «телефонных» элементов:
XElement contacts = XElement.Load(@"C:\Projects\ALL_MY_PROJECTS\LINQ_Noodling\UI\Contacts.xml");
foreach (x in contact.Elements("phone")) {
Console.WriteLine(x);
}
как это:
<phone>206-555-0144</phone>
<phone>425-555-0145</phone>
За исключением того, что это не так. Я ничего не получаю. Если я заменю «телефон» на «выше» на «контакт», я получу все контакты (включая «имя», «телефон», «адрес» и все дочерние элементы), но это так. Это не был последний раз, когда MSDN предоставлял вводящую в заблуждение или неправильную информацию, но представленная информация выглядит правильной и логичной.