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

时间:2018-04-05 21:22:10

标签: c# arrays dictionary key removeall

我有一个词典,如:

CCC

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

它与一系列数字配对,如:

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

我需要做以下事情:

  1. 删除所有红色的偶数
  2. 删除所有黄色的奇数
  3. 删除所有可被3整除的数字<白色
  4. 根据数字和颜色(红色,按字母顺序排序列表)

这是一种有效的方法吗?

1 个答案:

答案 0 :(得分:1)

前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