gpt4 book ai didi

c# - 排序元组列表时的默认行为是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:58:30 25 4
gpt4 key购买 nike

我想对 List 进行排序的 Tuple<int, string>使用 int值(value)。在这个example使用以下代码:

List<Tuple<int, string>> list = new List<Tuple<int, string>>();
list.Add(new Tuple<int, string>(1, "cat"));
list.Add(new Tuple<int, string>(100, "apple"));
list.Add(new Tuple<int, string>(2, "zebra"));

list.Sort((a, b) => a.Item1.CompareTo(b.Item1));

foreach (var element in list)
{
Console.WriteLine(element);
}

我注意到如果我更改以下行:

list.Sort((a, b) => a.Item1.CompareTo(b.Item1));

到:

list.Sort();

元素再次排序。

这是否意味着默认行为是使用第一项?如果是,这两种技术之间是否存在任何性能差异?

最佳答案

元组通过使用该组件的默认排序依次比较每个组件来比较它们自己。不是很清楚,但是 ( from MSDN ):

The Tuple<T1, T2>.IComparable.CompareTo method uses the default object comparer to compare each component.

这与您的示例略有不同,因为在匹配的情况下排序将继续到元组的第 2、3、4 等组件(在您的情况下为 string)(2 个项目的 int7 ,例如)

关于c# - 排序元组列表时的默认行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com