Я предполагаю, что вы используете C # на основе имен классов.В любом случае, если вы можете использовать XSLT, вы обнаружите там удобный элемент <xsl:sort>
.Возможно, вы можете применить XSLT к вашему документу и отфильтровать те узлы, которые вам нужны, уже отсортированные по нужному элементу.
В противном случае, я полагаю, вам нужно отсортировать итоговый список, используя некоторый пользовательский метод сравнения, который удаляетк содержащемуся элементу.
Я не разработчик C # (Java-парень), поэтому я не знаю, как это сделать, но я верю, что вам, счастливчикам, дается всякая классная поддержка и делегатская поддержка, так чтоне должно быть слишком сложно: D