LINQって案外ショボい?

XDocument xdoc = .... ; // 既に何か入っているものとする
Xnamespace xn = "...."; // 適切な何かが入っているものとする

// 以下と同じものを作ってみんとす
// xdoc.XPathSelectElements("//hoge:div[position() mod 6 == 1"); ←ご覧のものはイメージです

// この形式だとこうなる
xdoc.Descendants(xn + "div")
    .Where((el, i) => i % 6 == 1);

// これ書けなくない?
var divs = from div in xdoc.Descendants(xn + "div")
           where .... ? // どう書けばいいものやら…

まぁ上の形式で書けばいいじゃんという話ではあるが下の形式で書きたい
トリッキーじゃない自然なやり方でなんかないもんか