第一和MIN()是不一样的
最后和Max()是不一样的SortedSet的第一和MIN()是不一样的
在foreach排序为
AAA
BBB
CCC
^^
MIN()
^^
MAX()
cc
我怎样才能得到Min()和第一个是相同的?
我怎样才能得到最大()和最后是相同的?
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)。在你的文化中,字母大于'^'。 –