SortedSet first和Min()不一样

时间:2016-04-10 05:50:44

标签: .net sorting sortedset

First和Min()不一样 最后和Max()不一样

在foreach中,排序是
AAA
BBB
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());                   
}

1 个答案:

答案 0 :(得分:0)

简短的回答是:你做不到。

答案更长的是Min实施,here

如果您没有比较数字,代码将使用Comparer<TSource>.Default,但不保证您在SortedSet中使用的是String1 = "12345" String2 = "12abc" (在您的情况下不是)。

顺便说一句,如果您只想要Min和First相同,则在创建集合时不要指定比较器。它将自动使用dafault。