SortedSet first 和 Min() 不一样
SortedSet first and Min() are not the same
First 和 Min() 不一样
Last 和 Max() 不一样
在foreach中排序是
aaa
bbb
ccc
^^
分钟()
^^
最大值()
抄送
如何让 Min() 和 first 相同?
我怎样才能让 Max() 和 last 相同?
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());
}
简短的回答是:你不能。
较长的答案在 Min 实现中,here。
如果您不比较数字,代码将使用 Comparer<TSource>.Default
,不能保证它是您在 SortedSet
中使用的那个(在您的情况下不是).
顺便说一句,如果您只想让 Min 和 First 相同,请不要在创建集合时指定比较器。它将自动使用默认值。
使用 ss.Min 和 ss.Max 属性(不是方法)。
First 和 Min() 不一样
Last 和 Max() 不一样
在foreach中排序是
aaa
bbb
ccc
^^
分钟()
^^
最大值()
抄送
如何让 Min() 和 first 相同?
我怎样才能让 Max() 和 last 相同?
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());
}
简短的回答是:你不能。
较长的答案在 Min 实现中,here。
如果您不比较数字,代码将使用 Comparer<TSource>.Default
,不能保证它是您在 SortedSet
中使用的那个(在您的情况下不是).
顺便说一句,如果您只想让 Min 和 First 相同,请不要在创建集合时指定比较器。它将自动使用默认值。
使用 ss.Min 和 ss.Max 属性(不是方法)。