C#字典排序(按Key值、Value值顺序逆序排序)

字典的排序,简单做个笔记,方便查询(引用命名空间using System.Linq;):

Dictionary<int, int> tempDict = new Dictionary<int, int>();
var sortResult1 = from pair in tempDict orderby pair.Value descending select pair; //以字典Value值逆序排序
var sortResult2 = from pair in tempDict orderby pair.Key descending select pair; //以字典Key值逆序排序
var sortResult3 = from pair in tempDict orderby pair.Key ascending select pair; //以字典Key值顺序排序
var sortResult4 = from pair in tempDict orderby pair.Value ascending select pair; //以字典Value值顺序排序

总结:

  1. 需要注意的是,得到的排序结构sortResult1,2,3,4是一个迭代器 IOrderedEnumerable<> 了,不再是字典,如果这样写则是错误的:
Dictionary<int, int> sortResult1 = from pair in tempDict orderby pair.Value descending select pair; //以字典Value值逆序排序
  1. 如果字典的key值或Value值是引用类型的,可以根据根据引用类型中的某个字段来排序:
public class Info
{
    
    
	public int m_ID;
}
Dictionary<int, Info> tempDict = new Dictionary<int, Info>();
var sortResult1 = from pair in tempDict orderby pair.Value.m_ID descending select pair; //以字典Value值的字段 m_ID 逆序排序

猜你喜欢

转载自blog.csdn.net/weixin_42205218/article/details/105934030
今日推荐