贷款类网站怎样做,建立健全安全生产责任制的根本目的是,市场监督管理局投诉电话,临沂网站设计制作C#开发-集合使用和技巧#xff08;八#xff09;集合中的排序Sort、OrderBy、OrderByDescending ListT.Sort()方法签名使用场景示例升序实现效果 降序实现效果 IEnumerableT.OrderBy()方法签名使用场景示例实现效果 EnumerableT.OrderByDescending()… C#开发-集合使用和技巧八集合中的排序Sort、OrderBy、OrderByDescending ListT.Sort()方法签名使用场景示例升序实现效果 降序实现效果 IEnumerableT.OrderBy()方法签名使用场景示例实现效果 EnumerableT.OrderByDescending()使用场景示例实现效果 总结 在C#中ListT 类提供了多种方法来进行排序最常用的是 Sort 方法和IEnumerableT中提供的扩展方法 OrderBy/OrderByDescending 方法。这些方法可以按照特定的顺序重新排列列表中的元素。
List.Sort()
Sort 方法会对列表中的元素进行原地排序改变原始列表的顺序。
方法签名
public void Sort();
public void Sort(IComparerT comparer);
public void Sort(ComparisonT comparison);使用场景
当你想要直接修改现有列表的顺序时。
示例
升序
using System;
using System.Collections.Generic;public class Student
{public string Name { get; set; }public int Age { get; set; }
}public class Program
{public static void Main(){ListStudent students new ListStudent{new Student { Name 张三, Age 20 },new Student { Name 李四, Age 18 },new Student { Name 王五, Age 22 }};// 使用 Sort 方法按年龄排序students.Sort((x, y) x.Age.CompareTo(y.Age));// 输出排序后的学生名单foreach (var student in students){Console.WriteLine(${student.Name}, {student.Age});}}
}在这个例子中Sort 方法根据学生的年龄对学生列表进行了升序排序。
实现效果 降序
//降序students.Sort((x, y) -x.Age.CompareTo(y.Age));//或students.Sort((x, y) y.Age.CompareTo(x.Age));
实现效果 IEnumerable.OrderBy()
OrderBy 是 LINQ 提供的方法它可以创建一个排好序的新列表不会改变原始列表的顺序。
方法签名
public static IOrderedEnumerableTSource OrderByTSource, TKey(this IEnumerableTSource source, FuncTSource, TKey keySelector);使用场景
当你不希望改变原始列表的顺序而是想得到一个新的有序列表时。
示例
using System;
using System.Collections.Generic;
using System.Linq;public class Student
{public string Name { get; set; }public int Age { get; set; }
}public class Program
{public static void Main(){ListStudent students new ListStudent{new Student { Name 张三, Age 20 },new Student { Name 李四, Age 18 },new Student { Name 王五, Age 22 }};// 使用 OrderBy 方法按年龄排序var sortedStudents students.OrderBy(s s.Age);// 输出排序后的学生名单foreach (var student in sortedStudents){Console.WriteLine(${student.Name}, {student.Age});}}
}在这个例子中OrderBy 方法根据学生的年龄创建了一个新的有序列表原始列表 students 保持不变。
实现效果 Enumerable.OrderByDescending()
OrderByDescending 也是 LINQ 提供的方法类似于 OrderBy但是它是按照降序排序。
使用场景
当你需要按降序排序时。
示例
using System;
using System.Collections.Generic;
using System.Linq;public class Student
{public string Name { get; set; }public int Age { get; set; }
}public class Program
{public static void Main(){ListStudent students new ListStudent{new Student { Name 张三, Age 20 },new Student { Name 李四, Age 18 },new Student { Name 王五, Age 22 }};// 使用 OrderByDescending 方法按年龄降序排序var sortedStudentsDesc students.OrderByDescending(s s.Age);// 输出排序后的学生名单foreach (var student in sortedStudentsDesc){Console.WriteLine(${student.Name}, {student.Age});}}
}在这个例子中OrderByDescending 方法根据学生的年龄创建了一个新的降序列表原始列表 students 保持不变。
实现效果 总结
总结来说如果你想要改变原始列表的顺序使用 Sort如果你不想改变原始列表的顺序而是想得到一个新的有序列表使用 OrderBy 或 OrderByDescending。