C# —— Sort排序

Array.Sort(ints);// 默认的排序方式 正序排序

cs 复制代码
int[] ints = { 1, 2, 3, 89, 20, 100 };
Console.Write(string.Join(",", ints));

参数1 是排序的数组,参数2 是函数 函数的两个参数 是数组的两个元素,

当返回x-y 正序排序

cs 复制代码
Array.Sort(ints, (x, y) => x - y);// 正序排序
Console.Write(string.Join(",", ints));

当返回y-x 正序排序

cs 复制代码
Array.Sort(ints, (x, y) => y - x);// 倒序排序
Console.WriteLine(string.Join(",", ints));

数组的元素是字符串 字符串也可以进行比较

因为字符串不能使用x-y这种方式进行比较

使用 CaseInsensitiveComparer.Default.Compare 对数字 字符串 汉字都可以进行对比

return CaseInsensitiveComparer.Default.Compare(x, y); // 正序排序

cs 复制代码
string[] strings = { "ad", "啊", "d", "ac", "9", "1", "中" };
Array.Sort(strings, (x, y) =>
{
    return CaseInsensitiveComparer.Default.Compare(y, x);// 倒序排序
});
Console.WriteLine(string.Join(",", strings));

实例:

cs 复制代码
string[] pukes = { "大王", "3", "8", "10", "J", "小王", "2" };

string[] leve1 = { "大王", "小王", "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" };

Array.Sort(pukes, (x, y) =>
{
    // 将x和y转换对应的数字level数组的数字
    int levex = Array.IndexOf(leve1, x);// 获取原数组x 在leve1数组的索引值
    int levay = Array.IndexOf(leve1, y);// 获取y在leve1数组的索引值

    return levex - levay;
});

Console.WriteLine(string.Join(",", pukes));
相关推荐
周杰伦fans43 分钟前
8GB显存下模型量化实战指南
人工智能·后端·c#
h_a_o777oah1 小时前
【树论】树链剖分:将树形结构转化为线性结构以处理树上路径问题(洛谷 P3384 附C++代码模板)
数据结构·算法·线段树·acm·树链剖分·树论·重链剖分
HEJOO91 小时前
指针的算术运算详解
java·数据结构·算法
Coder-magician1 小时前
《代码随想录》刷题打卡day47:并查集-part01
数据结构·算法·图论
垆边人似月.1 小时前
VLAN 资源池(100~200 分档)
数据结构·算法
samble3 小时前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
程序员清风3 小时前
算法与数据结构入门:复杂度、数组与链表
数据结构·算法·链表
流形填表6 小时前
题库去重实战:基于题干指纹的重复题清理
开发语言·c#
Logic1016 小时前
C语言/数据结构排序题解:三个数的最大乘积——排序后比较两种候选情况
c语言·数据结构·数组·排序·时间复杂度·算法题·负数处理
殷色玫瑰7 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++