If i understand you well, you want to find key by value(s).
For example, if you want to find keys belongs to
95835
value, use:
Dictionary<System.Drawing.Point, int> d = new Dictionary<System.Drawing.Point, int>();
d.Add(new System.Drawing.Point(1,1), 95835);
d.Add(new System.Drawing.Point(10,10), 95835);
d.Add(new System.Drawing.Point(111,111), 95835);
d.Add(new System.Drawing.Point(20,20), 95836);
d.Add(new System.Drawing.Point(222,222), 95836);
d.Add(new System.Drawing.Point(333,33), 95837);
List<System.Drawing.Point> points = d.Where(x => x.Value==95835)
.Select(x => x.Key)
.ToList();
Result (
List<Point>
):
IsEmpty X Y
False 1 1
False 10 10
False 111 111
Note: i'm using
System.Drawing.Point
instead of
ArcGIS.Core.Geometry.MapPoint
, but the idea is the same.
In case of set of values:
int[] values2find = new int[]{95836, 95837};
List<System.Drawing.Point> foundpoints = d.Where(x => values2find.Any(y => x.Value == y))
.Select(x => x.Key)
.ToList();
Good luck!