c#集合排序

在C#中,集合排序是一种常见的操作,它可以帮助我们对集合中的元素进行排序。C#中提供了多种集合排序方法,包括Array.Sort、List.Sort、SortedList和SortedSet等。下面分别介绍一下这些集合排序方法的用法和注意事项:

1. Array.Sort

Array.Sort是C#中的数组排序方法,可以对数组中的元素进行排序。Array.Sort方法可以使用默认的排序算法或者自定义的排序算法来排序数组。

```csharp
int[] numbers = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };




// 使用默认的排序算法
Array.Sort(numbers);




// 使用自定义的排序算法
Array.Sort(numbers, (a, b) => a.CompareTo(b));
```

在上面的代码中,使用Array.Sort方法对数组中的元素进行排序。使用默认的排序算法可以直接调用Array.Sort方法,使用自定义的排序算法需要传入一个比较函数。

2. List.Sort

List.Sort是C#中的集合排序方法,可以对List中的元素进行排序。List.Sort方法可以使用默认的排序算法或者自定义的排序算法来排序List。




```csharp
List<int> numbers = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };




// 使用默认的排序算法
numbers.Sort();




// 使用自定义的排序算法
numbers.Sort((a, b) => a.CompareTo(b));
```

在上面的代码中,使用List.Sort方法对List中的元素进行排序。使用默认的排序算法可以直接调用List.Sort方法,使用自定义的排序算法需要传入一个比较函数。

3. SortedList

SortedList是C#中的有序键值对集合,可以对键值对进行排序。SortedList默认使用键进行排序,也可以自定义排序算法来对键进行排序。

```csharp
SortedList<string, int> numbers = new SortedList<string, int>
{
    { "pi", 3 },
    { "e", 2 },
    { "phi", 1 },
};




// 使用默认的排序算法
foreach (var item in numbers)
{
    Console.WriteLine(item.Key + ": " + item.Value);
}




// 使用自定义的排序算法
numbers = new SortedList<string, int>(numbers, new KeyComparer());
foreach (var item in numbers)
{
    Console.WriteLine(item.Key + ": " + item.Value);
}




public class KeyComparer : IComparer<string>
{
    public int Compare(string x, string y)
{
        int result = x.Length.CompareTo(y.Length);
        if (result == 0)
        {
            return x.CompareTo(y);
        }
        return result;
    }
}
```

在上面的代码中,使用SortedList对键值对进行排序。可以使用默认的排序算法直接创建SortedList对象,也可以自定义排序算法来对键进行排序。

4. SortedSet

SortedSet是C#中的有序集合,可以对集合中的元素进行排序。SortedSet默认使用元素进行排序,也可以自定义排序算法来对元素进行排序。

```csharp
SortedSet<int> numbers = new SortedSet<int> { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };




// 使用默认的排序算法
foreach (var item in numbers)
{
    Console.Write(item + " ");
}




Console.WriteLine();




// 使用自定义的排序算法
numbers = new SortedSet<int>(numbers, new DescendingComparer());
foreach (var item in numbers)
{
    Console.Write(item + " ");
}




public class DescendingComparer : IComparer<int>
{
    public int Compare(int x, int y)
{
        return y.CompareTo(x);
    }
}
```

在上面的代码中,使用SortedSet对集合中的元素进行排序。可以使用默认的排序算法直接创建SortedSet对象,也可以自定义排序算法来对元素进行排序。

需要注意的是,在使用集合排序时,需要根据实际需求和数据类型选择合适的排序算法和比较器,并注意排序算法的时间复杂度和稳定性等问题。

  • END
  • 如果觉得好用欢迎大家分享给身边的小伙伴!
  • -

  • 技术群:添加小编微信并备注进群

    小编微信:mm1552923   

    公众号:dotNet编程大全    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值