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));
相关推荐
浅念-17 分钟前
LeetCode 回溯算法题——综合练习
数据结构·c++·算法·leetcode·职场和发展·深度优先·dfs
baivfhpwxf20235 小时前
c# 中对像之间频繁的转换会慢吗?
开发语言·c#
加号36 小时前
【C#】 实现 XRC 异或冗余校验:原理与实践
c#·xrc
小钻风33667 小时前
Java + Spring Boot 操作 Kafka 完整学习指南
c#·linq
叫我少年7 小时前
C# 程序的常规结构 — 命名空间、类型、入口点与表达式
c#
生成论实验室7 小时前
用事件关系网络重新理解AI(二):损失函数、优化器与深度学习的动力学
数据结构·人工智能·深度学习·算法·语言模型
阿文的代码库8 小时前
线段树入门:算法分析
数据结构·算法
悠仁さん9 小时前
数据结构 树 二叉树 堆 (堆的模拟实现篇)
数据结构
此生决int9 小时前
算法从入门到精通——位运算
数据结构·c++·算法·蓝桥杯
计算机安禾9 小时前
【算法分析与设计】第4篇:分治策略的理论框架与经典案例
数据结构·算法·排序算法