最初とMin(ない)同じ
最終マックス(ないソートは
AAA
BBB
でのforeachで たSortedSet第MIN())と同じ
同じではありません CCC
^^
MIN()
^^
MAX()
cc
Min()はどのようにして最初に同じものを得ることができますか?
Max()と最後の値を同じにするにはどうすればよいですか?
ss.FirstOrDefault()は等しいss.Min()
ss.Reverse()ではありませんFirstOrDefault()等しいss.Max()
public void SS()
{
SortedSet<string> ss = new SortedSet<string>(StringComparer.OrdinalIgnoreCase);
ss.Add("bbb");
ss.Add("aaa");
ss.Add("^^");
ss.Add("ccc");
foreach (string s in ss)
Debug.WriteLine(s);
Debug.WriteLine(ss.Min());
Debug.WriteLine(ss.Max());
}
'ss.Min'インスタンスプロパティを使用すると、' SortedSet 'の構造体に関して最小の要素が見つかるため、そのセットによって運ばれる比較者を尊重します。しかし、 'ss.Min()' LINQ拡張メソッドを使うと、ソートされた構造体に関するすべてを忘れてしまい、単にデフォルトの比較元( 'Comparer .Default')に関して最小要素を見つけて、' StringComparer.CurrentCulture '。 "ordinal ignore case"では、 'a'(U + 0061)は'^'(U + 005E)より_less_である' A'(U + 0041)のように扱われます。あなたの文化では、文字は '^'よりも_greater_です。 –