关于c#:需要从字典中删除和排序键编号和颜色项

Need to remove and sort key numbers and color items from dictionary

我有一本字典,像:

1
var map = new Dictionary<int, ColorType>();

其中colortype是枚举红、黄、白

它与一组数字配对,如:

1
2
3
var lstNumbers = Enumerable
            .Range(1, 100).OrderBy(n => Guid.NewGuid().GetHashCode())
            .ToArray();

我需要做以下工作:

  • 删除所有红色的偶数
  • 删除所有黄色奇数
  • 删除所有可被3除的白色数字
  • 按数字升序排列列表,然后按颜色(红色

    这是一种有效的方法吗?


    对于第一个三:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    foreach(KeyValuePair<int, ColorType> entry in map.ToList()) {

        if (entry.Key % 2 == 0 && entry.Value == ColorType.Red) { // Even and Red
            map.Remove(entry.Key);
        }

        if (entry.Key % 2 == 1 && entry.Value == ColorType.Yellow) { // Odd and Yellow
            map.Remove(entry.Key);
        }

        if (entry.Key % 3 == 0 && entry.Value == ColorType.White) { // Divisible by 3 and White
            map.Remove(entry.Key);
        }
    }

    作为为sorting的词典,可以在这里找到答案