Я пытался это недавно, linq для цикла .. это то, что я придумал ..
var query = from ii in Enumerable.Range(0, xml.AllIndexesOf("<item").Count())
where ii < xml.AllIndexesOf("<item").Count()
select new { Start = xml.AllIndexesOf("<item").ToList()[sii], Count = xml.AllIndexesOf("</item").ToList()[sii] - xml.AllIndexesOf("<item").ToList()[sii] };