【发布时间】:2022-06-10 22:06:00
【问题描述】:
我正在尝试从对象列表中查找特定的枚举。代码如下:
foreach (IEquipment equipment in EntityEquipmentList)
{
CapabilityEnum equipmentCapability = equipment.Capability;
this.JammerLabel.Text += "\nEquipment Found " + equipment.Name + equipmentCapability;
if (equipmentCapability.Equals(CapabilityEnum.Jammer))
{
this.JammerLabel.Text += "\nJAMMER FOUND " + equipment.Capability;
Form1 SUCCESSFORJAMMER = new Form1();
SUCCESSFORJAMMER.Show();
}
}
为了清楚起见,EntityEquipmentList 是 IEquipment 对象的列表,我正在尝试找到具有“干扰器”功能的对象。正如您在“if”语句中看到的那样,我将我的设备的能力(属于“CapabilityEnum”类型)与 Jammer 的 Enum 的能力进行比较。
我将附上下面的枚举只是为了方便参考,以防它很重要。
public enum CapabilityEnum : long
{
CustomBits = -281474976710656,
Flare = -2147483648,
All = -1,
None = 0,
TDL_JREAP_A = 1,
SubSurface = 2,
Surface = 4,
Air = 8,
Space = 16,
Sensor = 32,
Weapon = 64,
Active = 128,
Detection = 256,
Tracking = 512,
Guidance = 1024,
Command = 2048,
Illuminator = 4096,
EarlyWarningRadar = 32768,
HeightFindingRadar = 65536,
AcquisitionRadar = 131072,
Optical = 262144,
Radio = 524288,
Jammer = 1048576,
Radar = 2097152,
Sonar = 4194304,
TDL_Link16 = 8388608,
TDL_EPLRS_SADL = 16777216,
IFF = 33554432,
TDL_C2_IADS = 67108864,
TDL_GATEWAY = 134217728,
TDL_IDM = 268435456,
TDL_C2_SAM = 536870912,
Chaff = 1073741824
}
}
如您所见,Jammer 位于中间,值为“1048576”。老实说,这是我第一次与 Enum 合作,因此非常感谢您的帮助。
需要明确的是,我 100% 确定列表中有一件具有干扰能力的设备。
【问题讨论】: