需要从字典中删除和排序键号和颜色项

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

我有一个像这样的字典:

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

其中 ColorType 是一个枚举 { Red, Yellow, White }

它与一组数字配对,例如:

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

我需要做以下事情:

  1. 删除所有红色的偶数
  2. 删除黄色的所有奇数
  3. 删除所有能被 3 整除的白数
  4. 先按数字再按颜色(红色)对列表进行升序排序

这是一种有效的方法吗?

前 3 个:

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);
    }
}

至于你的字典排序,答案可以找到here