Рассмотрим следующее перечисление:
enum Color
{
None = 0,
Yellow = 1,
Green = 2,
Blue = 4
}
var enumType = typeof(Color);
var number = (int)(Color.Yellow | Color.Green);
// number equals to 3
Теперь мне нужна операция, обратная описанной выше операции. Я хочу знать, какие перечисления приводят к числу 3. например:
string[] names = GetEnumNames(enumType, 3);
// It should return an array { "Yellow", "Green" }
Я пробовал Enum.ToObject
и знаю, что он возвращает Enum с "Yellow"
и "Green"
в нем. Но как я могу получить список имен?
Примечание: просто чтобы упомянуть, я знаю только тип Enum во время выполнения.