以降序C#排序元组

时间:2017-05-20 18:30:35

标签: c# sorting tuples

我最近开始学习C#,并且有一个包含六个整数的元组。是否有任何我可以使用的函数将元组按降序排序 - 例如:

元组< 5,4,3,3,7,8> 变 元组< 8,7,5,4,3,3>

2 个答案:

答案 0 :(得分:5)

元组只是不同价值观的持有者 - 一个将它们组合在一起的包。元组不是列表,因此不是预期其中包含的项目可以相互重新排序的对象。

因此,没有任何内置命令会对Tuple中包含的项进行排序 - 毕竟,如果元组包含整数,字符串,人物对象,订单对象和日期,那么如何订购那些?

您应该使用的数据结构是为了保存相同类型的项目而构建的,并且可以合理地排序 - 例如List<T>

答案 1 :(得分:1)

您可以从元组值创建数组。对数组进行排序。从数组中创建一个新元组。

var t = Tuple.Create(5, 4, 3, 3, 7, 8);

var arr = new int[] { t.Item1, t.Item2, t.Item3, t.Item4, t.Item5, t.Item6 };

Array.Sort(arr, (a, b) => b - a);

t = Tuple.Create(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]);

但是,正如其他答案和评论中已经提到的,看起来你是在滥用元组。