我搜索了很多但是找不到如何从.NET中删除和添加值到枚举
假设我们有这样的枚举:
Public Enum Coordinates
x
y
z
End Enum
我需要的是这样的枚举:
Public Enum Coordinates
x
y
End Enum
任何帮助将不胜感激。
答案 0 :(得分:3)
在运行时修改Enumerations是不可能的(而不是打算),你应该明确地使用正确的数据结构。例如。像Dimitry建议Dictionary<Key, Value>
答案 1 :(得分:2)
如果您已经听说过关于&#34;打开和关闭枚举中的某些值&#34;,那么它一定是关于标志枚举的。这意味着,您可以执行以下操作:
[Flags]
public enum Coordinates
{
None = 0;
X = 1; // binary 001
Y = 2; // binary 010
Z = 4; // binary 100
}
现在您可以像这样使用它:
Coordinates enabledCoordinates = Coordinates.X | Coordinates.Y; // binary 011
Console.WriteLine(enabledCoordinates); // displays: X, Y (without Flags, it would display 3)
然后可以通过二进制AND和OR运算来执行添加和删除:
// Adding Z coordinate: by binary OR
enabledCoordinates |= Coordinates.Z;
// Removing Z coordinate: by binary AND of the negated Z
enabledCoordinates &= ~Coordinates.Z;
检查是否添加了坐标可以通过二进制AND执行:
// checking if Z flag is set
if ((enabledCoordinates & Coordinates.Z) != Coordinates.None)
Console.WriteLine("Z is turned on");