using System.Collections.Generic;
private static HashSet<string> SystemColorsNames() {
return typeof(SystemColors)
.GetProperties(BindingFlags.Public | BindingFlags.Static)
.Where(prop => prop.CanRead && prop.PropertyType == typeof(Color))
.Select(prop => prop.Name)
public static void Main() {
Color originColor = Color.FromArgb(255, 206, 206, 206);
static int Distance(Color left, Color right) =>
Math.Abs(left.R - right.R) +
Math.Abs(left.G - right.G) +
Math.Abs(left.B - right.B) +
Math.Abs(left.A - right.A);
var exclude = SystemColorsNames();
.Where(color => !exclude.Contains(Enum.GetName(color)))
.MinBy(color => Distance(Color.FromKnownColor(color), originColor));