Я пытаюсь вернуть список авторов из сообщений в ветке форума, используя запрос LINQ to XML, но запрос возвращает мне одного и того же автора для каждого сообщения.
Запросы работают правильно, когда я делаю их отдельно, как это:
var doc = XDocument.Load("http://us.battle.net/wow/en/forum/topic/2267488434");
XNamespace ns = "http://www.w3.org/1999/xhtml";
var posts = doc.Descendants(ns + "div")
.Where(a => a.Attribute("id") != null && a.Attribute("id").Value == "thread")
.Elements(ns + "div");
var authors = posts.Descendants().Where(a => a.Attribute("class") != null && a.Attribute("class").Value == "context-link");
Но когда я пытаюсь выполнить одно и то же действие в одном запросе, я не получаю одинаковые результаты. Ниже мой запрос:
var authors = from td in doc.Descendants(ns + "div")
.Where(a => a.Attribute("id") != null && a.Attribute("id").Value == "thread")
.Elements(ns + "div")
let elements = doc.Descendants()
.Where(a => a.Attribute("class") != null)
let author = elements.First(a => a.Attribute("class").Value == "context-link")
select new
{
Author = author.Value.Trim(),
};
Есть идеи, что я делаю не так?