Reverseメソッドは列挙だけでなく、IEnumerator<T>を引数にとるメソッドやLINQのメソッドに渡して使うこともできます。
Reverseメソッドを使ってSortedSet内の要素の一部分を逆順で取得する
using System;
using System.Collections.Generic;
using System.Linq;
class Sample {
static void Main()
{
var s = new SortedSet<int>() {5, 1, 0, 3, 4, 2};
// デフォルトの順序でSortedSet内の要素の一部分を取得する
// (最初の要素から1つスキップしたのち、3つ分を取得する)
Console.WriteLine(string.Join(", ", s.Skip(1).Take(3)));
// デフォルトとは逆順でSortedSet内の要素の一部分を取得する
// (最初の要素から1つスキップしたのち、3つ分を取得する)
Console.WriteLine(string.Join(", ", s.Reverse().Skip(1).Take(3)));
}
}
実行結果
1, 2, 3 4, 3, 2