Я думаю, что причина, по которой вы находите хаотичный "var", заключается в том, что вы создали анонимный тип с "новым" в вашем выборе Если вы просто выберете один элемент, который вам нужен, тогда переменная не будет анонимного типа.
, например
select sportpage.Element("LinkPage").Element("IDList").Elements("string");
Однако, я бы предпочел сделать это, используя. обозначение, как это.
List<string> ids = xDoc.Elements("SportPages").Elements("SportPage").Where(sportPage => sportPage.Attribute("type").Value == "Karate").Elements("LinkPage").Elements("IDList").Elements("string").Select(id => id.Value).ToList();