需要从字典中删除和排序键号和颜色项
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();
我需要做以下事情:
- 删除所有红色的偶数
- 删除黄色的所有奇数
- 删除所有能被 3 整除的白数
- 先按数字再按颜色(红色)对列表进行升序排序
这是一种有效的方法吗?
前 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
我有一个像这样的字典:
var map = new Dictionary<int, ColorType>();
其中 ColorType 是一个枚举 { Red, Yellow, White }
它与一组数字配对,例如:
var lstNumbers = Enumerable
.Range(1, 100).OrderBy(n => Guid.NewGuid().GetHashCode())
.ToArray();
我需要做以下事情:
- 删除所有红色的偶数
- 删除黄色的所有奇数
- 删除所有能被 3 整除的白数
- 先按数字再按颜色(红色)对列表进行升序排序
这是一种有效的方法吗?
前 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