Если вы не используете var
, вы увидите, что не так - каждый элемент results
представляет собой последовательность элементов.Вот ваш код без var
:
IEnumerable<IEnumerable<XElement>> results =
doc.Descendants("Order")
.Where(o => o.Attribute("OrderNumber").Value == "SO43659")
.Select(o => o.Elements("LineItem"));
foreach (IEnumerable<XElement> r in results)
{
ListBox1.Items.Add(new ListItem(r.ToString()));
}
Я подозреваю, что это не то, что вы ищете.Вы можете использовать это вместо:
// Will go bang if there isn't exactly one matching order
IEnumerable<XElement> results =
doc.Descendants("Order")
.Where(o => o.Attribute("OrderNumber").Value == "SO43659")
.Single()
.Select(o => o.Elements("LineItem"));
Или:
// Will find *all* the LineItem elements under *all* matching orders
IEnumerable<XElement> results =
doc.Descendants("Order")
.Where(o => o.Attribute("OrderNumber").Value == "SO43659")
.SelectMany(o => o.Elements("LineItem"));