На месте:
refSortNodeList.Sort(
(x, y) =>
x == null ? (y == null ? 0 : -1)
: (y == null ? 1 : x.m_valRating.CompareTo(y.m_valRating))
);
Создание нового перечисления:
var newEnum = refSortNodeList.OrderBy(x => x.m_valRating);
Создание нового списка:
var newList = refSortNodeList.OrderBy(x => x.m_valRating).ToList();
На месте быстрее инаиболее эффективный в использовании памяти, но бесполезно, если вы также хотите сохранить старый список.
Следующий быстрее, чем предыдущий, и дает результаты по мере их поступления, но вы должны заново выполнить сортировку, чтобы использовать его сновав этом случае третий - тот, на которого нужно пойти.