c# List sort用法
时间: 2023-07-05 22:03:41 浏览: 48
C#中的List类有一个Sort方法,它可以按照指定的条件对列表进行排序。以下是使用List Sort方法的示例:
假设有一个包含整数的List:
```csharp
List<int> numbers = new List<int>() { 4, 2, 8, 1, 6, 3 };
```
要按照升序排列,可以使用以下代码:
```csharp
numbers.Sort();
```
要按照降序排列,可以使用以下代码:
```csharp
numbers.Sort((a, b) => b.CompareTo(a));
```
在这个例子中,我们传递了一个比较器函数。这个函数接受两个参数,比较它们的大小,并返回一个int值,表示它们之间的关系。如果第一个参数小于第二个参数,则返回一个负数;如果两个参数相等,则返回0;如果第一个参数大于第二个参数,则返回一个正数。
在这个例子中,我们使用了lambda表达式来创建比较器函数。lambda表达式是一种简洁的方式来定义匿名函数。在这个例子中,我们定义了一个接受两个参数a和b的lambda表达式,并使用CompareTo方法来比较它们的大小。我们将返回值取反,以实现降序排列。
注意:使用List的Sort方法会直接修改原始列表。如果需要保留原始列表,可以使用LINQ的OrderBy方法来创建一个新的已排序的列表。
相关问题
C# list sort
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实例作为参数传递给了它。这样,列表中的元素就按照我们定义的规则进行了排序。
c#list.sort
在C#中,List<T>类的Sort()方法用于对列表进行排序。通过调用Sort()方法,可以对列表的元素进行升序排序。例如,使用以下代码可以对一个整数列表进行升序排序:
List<int> sortList = new List<int>() { 100, 101, 50, 4 };
sortList.Sort();
在这个例子中,sortList列表中的元素将按照升序的方式进行排序。
除了使用Sort()方法进行排序之外,还可以使用lambda表达式来自定义排序规则。例如,使用以下代码可以对一个整数列表按照降序进行排序:
List<int> sortList = new List<int>() { 100, 101, 50, 4 };
sortList.Sort((a, b) => b.CompareTo(a));
在这个例子中,使用lambda表达式(a, b) => b.CompareTo(a)来定义了一个降序排序规则。
需要注意的是,Sort()方法会修改原始列表的顺序。如果你想要保留原始列表的顺序,可以使用LINQ的OrderBy()方法来创建一个新的排序后的列表。
总结起来,c#的List<T>类的Sort()方法可以用来对列表进行排序,可以使用默认的升序排序方式,也可以使用lambda表达式自定义排序规则。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C# list的sort排序](https://blog.csdn.net/lejian/article/details/131068302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]