C# list sort
时间: 2023-09-12 21:06:09 浏览: 59
C#中的List类提供了一个Sort()方法来对列表元素进行排序。Sort()方法默认按照元素的自然排序进行排序,但是也可以通过传递一个实现了IComparer<T>接口的比较器来自定义排序规则。
下面是一个示例代码,展示如何使用Sort()方法对一个整型列表进行排序:
```csharp
List<int> numbers = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6 };
numbers.Sort(); // 默认按照元素的自然排序进行排序
foreach (int number in numbers)
{
Console.Write(number + " ");
}
// 输出: 1 1 2 3 4 5 6 9
```
如果要自定义排序规则,可以传递一个实现了IComparer<int>接口的比较器。比如,下面的代码展示如何按照数字的个数(从小到大)进行排序:
```csharp
class NumberCountComparer : IComparer<int>
{
public int Compare(int x, int y)
{
return x.ToString().Length.CompareTo(y.ToString().Length);
}
}
List<int> numbers = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6 };
numbers.Sort(new NumberCountComparer()); // 自定义排序规则
foreach (int number in numbers)
{
Console.Write(number + " ");
}
// 输出: 3 1 4 1 5 6 9 2
```
在上面的示例中,我们定义了一个实现了IComparer<int>接口的NumberCountComparer类,并重写了Compare()方法来实现自定义的排序规则。然后,在调用Sort()方法时,将NumberCountComparer实例作为参数传递给了它。这样,列表中的元素就按照我们定义的规则进行了排序。