当前位置: 首页 > news >正文

1.1.1 用于排序规则的IComparable接口使用介绍

        在C#中,IComparable 是一个核心接口,用于定义对象的自然排序规则。实现该接口的类可以指定其实例如何与其他实例比较大小,从而支持排序操作(如 Array.Sort()List.Sort()).

       1. 该接口CompareTo返回值含义:

      -1:当前对象 小于 比较对象(应排在前面)。

      0:两对象 相等

                      1:当前对象 大于 比较对象(应排在后面)

        2.实际应用场景

                对集合调用 Sort() 时自动生效。

                在 SortedListSortedDictionary 等有序容器中使用。

                为LINQ的 OrderBy() 提供基础比较能力。

一、实际例子如下:

using System;
using System.Collections.Generic;public class Person : IComparable<Person>
{public string Name { get; set; }public int Age { get; set; }public Person(string name, int age){Name = name;Age = age;}// 实现 CompareTo 方法(按年龄排序)public int CompareTo(Person? other){if (other == null) return 1; // null视为最小return Age.CompareTo(other.Age); // 使用int的CompareTo方法}public override string ToString() => $"{Name} ({Age})";
}class Program
{static void Main(){var people = new List<Person>{new Person("Alice", 25),new Person("Bob", 20),new Person("Charlie", 30)};// 排序(依赖IComparable的实现)people.Sort();foreach (var person in people){Console.WriteLine(person); // 输出按年龄升序}}
}
上例中输出:可见按照年龄进行了升序排列:
Bob (20)
Alice (25)
Charlie (30)

http://www.dtcms.com/a/158206.html

相关文章:

  • 直线模组精度测试的标准是什么?
  • 前端面试之吊打面试官 HTML篇
  • 关闭网桥的STP,解决RHEL10上qemu使用u-boot加载uImage自动加载失败的问题
  • RNN——循环神经网络
  • 基于YOLO与PySide6的道路缺陷检测系统(源码)
  • 数据库MySQL学习——day5(总结与复习实践)
  • AAAI2016论文 UCO: A Unified Cybersecurity Ontology
  • i18n-ai-translate开源程序,可以使用DeepSeek等模型将您的 i18nJSON翻译成任何语言
  • PyTorch作为深度学习框架在建筑行业的应用
  • pymongo功能整理与基础操作类
  • 力扣面试150题--合并两个有序链表和随机链表的复制
  • SpringBoot物资管理系统 | JavaWeb项目设计与实现
  • 04-谷粒商城笔记
  • 测试用例的设计
  • 迷宫问题演示
  • ShaderToy学习笔记 03.多个形状和旋转
  • ‌C/C++对时间的处理
  • Scratch——第19课 正话反说问题
  • 线程池(四):并发编程常见问题解析
  • QT6 源(52)篇二:存储 c 语言字符串的类 QByteArray 的使用举例,
  • 中美艺术教育深度融合,Glowstar与ACSDA在尔湾签署战略合作协议推动艺术发展
  • ShaderToy学习笔记 02.圆
  • JAVA多线程(8.0)
  • Pygame核心概念解析:Surface、Clock与事件循环
  • C++学习-入门到精通-【2】类、对象和字符串的介绍
  • 2025.04.26-饿了么春招笔试题-第二题
  • leetcode 26和80
  • DIY 3D打印机 原理及步骤概况
  • MySQL基本命令--系统+用户+表
  • 搭建动态SQL取数