C# Dictionary根据Key排序

本文介绍如何在C#中对Dictionary对象的Key进行排序,详细解析排序过程,并展示实际效果。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            Dictionary<int, string> test = new Dictionary<int, string> { };
            test.Add(0,"000");
            test.Add(4, "444");
            test.Add(2, "222");
            test.Add(6, "666");

            Dictionary<int, string> dic1Asc = test.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
            
            
            Console.WriteLine("小到大排序");
            foreach(Ke
### C# 中按键对字典进行排序C# 中,`Dictionary<TKey, TValue>` 并不保证其内部元素的顺序。如果需要按键排序,则可以考虑使用 `SortedDictionary<TKey, TValue>` 或者通过 LINQ 对常规的 `Dictionary<TKey, TValue>` 进行排序。 #### 使用 `SortedDictionary` 由于 `SortedDictionary<TKey, TValue>` 自动按照键值排序存储数据[^1]: ```csharp var sortedDictionary = new SortedDictionary<int, string> { { 3, "Three" }, { 1, "One" }, { 2, "Two" } }; foreach (var kvp in sortedDictionary) { Console.WriteLine($"{kvp.Key}: {kvp.Value}"); } ``` 这段代码创建了一个按键升序排列的 `SortedDictionary<int, string>` 实例并打印其中的内容。 #### 利用 LINQ 对普通字典排序 对于普通的 `Dictionary<TKey, TValue>`, 可以借助于 LINQ 来实现按键排序: ```csharp var dictionary = new Dictionary<int, string> { { 3, "Three" }, { 1, "One" }, { 2, "Two" } }; // 按照键从小到大排序 var orderedDictByKeyAsc = from entry in dictionary orderby entry.Key ascending select entry; foreach (var item in orderedDictByKeyAsc) { Console.WriteLine($"{item.Key}:{item.Value}"); } // 如果想要降序的话只需要改变orderby子句即可 var orderedDictByKeyDesc = from entry in dictionary orderby entry.Key descending select entry; ``` 上述例子展示了如何利用查询表达式语法来获取一个新的有序序列 `orderedDictByKeyAsc` 和 `orderedDictByKeyDesc` ,它们分别代表了按键升序和降序的结果集[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的杂货店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值