对字典进行排序根据它的键
本文关键字:int 字典 排序 Point | 更新日期: 2023-09-27 18:06:00
我有一个Dictionary<Point, int> MyDic
, Point
类定义如下:
public class Point
{
public double X { get; set; }
public double Y { get; set; }
}
如何使用LINQ
根据Key
对MyDic
进行排序?我想先按X
订货,再按Y
订货。
例如,如果我的字典如下所示:
Key (Point (X,Y)) Value (int)
--------------------------------------
(8,9) 6
(5,4) 3
(1,4) 2
(11,14) 1
排序后是这样的:
Key (Point (X,Y)) Value (int)
--------------------------------------
(1,4) 2
(5,4) 3
(8,9) 6
(11,14) 1
OrderBy
和ThenBy
应该可以满足您的要求:
MyDic.OrderBy(x => x.Key.X)
.ThenBy(x => x.Key.Y)
.ToDictionary(x => x.Key, x => x.Value)