C#语法基础用法Dictionary排序

年底接近尾声,闲来无事,继续加强学习C#的一些基础知识,今天弄了一下Dictionary排序,顺便

做个小Demo,以加深映像,为了更加真实些,稍微使逻辑复杂了一些,关键训练一下自己的思维逻辑:

1.先看效果图:

2.核心逻辑如下:

 Dictionary<int, string> list = new Dictionary<int, string>();//实例化一个字典
            Random rd = new Random();//为了更加真实,创建一个生成整数的随机数生成器
            int id = 0;
            List<int> idlist = new List<int>();//用来生成100个整数,并存放到列表里idlist
            for (int i = 0; i < 100; i++)
            {
                id = rd.Next(1, 100);
                idlist.Add(id);
            }

            //遍历列表idlist,并加入字典list
            foreach (int item in idlist)
            {
                if (!list.ContainsKey(item))
                {
                    list.Add(item, "字典排序测试");
                }
            }

            //实现排序的关键方法,可以声明一个key-value结构的集合数组,这里用了List,只要符合key-value结构的数据结构都可以,

            //然后利用字典的OrderBy(升序)、OrderByDescending(降序)方法轻松实现排序功能

           //通过过linq也可以实现:var result = from pair in dic orderby pair.Key select pair

            List<KeyValuePair<int, string>> lstorder = list.OrderByDescending(c => c.Key).ToList();

            DataTable dt = new DataTable();
            dt.Columns.Add("编号");
            dt.Columns.Add("内容");
            foreach (KeyValuePair<int, string> item in lstorder)
            {
                dt.Rows.Add(item.Key, item.Value);
            }
            this.dataGridView1.DataSource = dt;//用DataGridView来展示结果

总结:不要忽略对基础知识的学习,更难更复杂的东西,实现的基础往往是这些小细节来组合而成的,莫要好高骛远,踏踏实实,扎扎实实学习。

posted @   小麻雀  阅读(20520)  评论(5编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示