Я новичок в LINQ. У меня есть обычный XML-документ siteMap с пользовательскими атрибутами. Один из этих атрибутов: id
Я хотел бы использовать LINQ для извлечения одного узла, соответствующего значению пользовательского атрибута (id).
и т.д.
Моя попытка LINQ выглядит следующим образом:
private SiteMapNode FindNodeById(SiteMapNodeCollection nodes, int siteMapNodeId)
{
var pageNode = from SiteMapNode node in nodes.Cast<SiteMapNode>()
where node["id"] == Convert.ToString(siteMapNodeId)
select node;
return (SiteMapNode)pageNode;
}
Во время отладки pageNode назначается с:
{System.Linq.Enumerable.WhereEnumerableIterator<System.Web.SiteMapNode>}
И в операторе возврата генерируется исключение InvalidCastException:
Unable to cast object of type 'WhereEnumerableIterator`1[System.Web.SiteMapNode]' to type 'System.Web.SiteMapNode'.
Любая помощь приветствуется! :)
РЕДАКТИРОВАТЬ: я переформулировал этот вопрос в более ясной форме здесь: Переформулированный вопрос
Спасибо Стефану за то, что поставил меня на правильный путь!