using System.Collections.Generic;
public static void Main()
var dict = new Dictionary<Point, int>();
for(var i = 100; i >= 0; i--)
for(var j = 100; j >= 0; j--)
dict.Add(new Point {X = j, Y = i}, i);
Console.WriteLine(kvp.Key);
Console.WriteLine("After sorting:");
dict = dict.OrderBy(x => x.Key.X)
.ToDictionary(x => x.Key, x => x.Value);
foreach (var kvp in dict)
Console.WriteLine(kvp.Key);
public double X { get; set; }
public double Y { get; set; }
public override string ToString()
return string.Format("X = {0}, Y = {1}", X, Y);