Первый и Min() не совпадают
Последний и Max() не являются одинаковымиSortedSet первый и Min() не являются одинаковыми
В Еогеасп сортировка
ааа
ГЭБ
ссс
^^
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 '. При «порядковом игнорировании» символ 'a' (U + 0061) обрабатывается как' A' (U + 0041), который равен _^_ (U + 005E). В вашей культуре буквы _greater_, чем '^'. –