альтернативный способ:
var urls = from url in doc.Descendants("urlset").Elements("url")
let str = Int32.Parse(url.Element("loc").Value.Replace("e",""))
where str >= 2 && str <= 4
select url;
или на самом деле, более безопасный вариант, который не вызывает исключений, если loc не в форме "e + integer value" ( любезно предоставлено Marc Gravell ) будет:
int? TryParse(string s)
{
int i;
return int.TryParse(s, out i) ? (int?)i : (int?)null;
}
var urls = from url in doc.Descendants("urlset").Elements("url")
let str = TryParse(url.Element("loc").Value.Replace("e",""))
where str >= 2 && str <= 4
select url;