D
Dwight.Dexter
I have an enum variable. Is there some way to cast an int or BitArray
and get my enum value? I have to communicate with an old C-style
sever so I get an array of bits("0","1"). But I'm using an enum
variable to store the data.
[Flags]
public enum LaneCapabilities
{
MLT = 0,
ACM = 1,
AVI = 2,
ATIM = 4,
Degraded = 8,
CCS = 16
}
Ended up with this code:
string[] flags = ReadRTMessage().Split(' ');
LaneCapabilities capable = new LaneCapabilities();
for( int i = 0; i<flags.Length; i++)
{
switch(i)
{
case 0 :
if (flags[0] == "1")
capable |= LaneCapabilities.ACM;
break;
case 1 :
if (flags[1] == "1")
capable |= LaneCapabilities.ATIM;
break;
case 2:
if (flags[2] == "1")
capable |= LaneCapabilities.AVI;
break;
case 3:
if (flags[3] == "1")
capable |= LaneCapabilities.CCS;
break;
case 4:
if (flags[1] == "1")
capable |= LaneCapabilities.Degraded;
break;
case 5:
if (flags[1] == "5")
capable |= LaneCapabilities.MLT;
break;
}
}
Seems like a lot of work for a .NET app. Any suggestions?
and get my enum value? I have to communicate with an old C-style
sever so I get an array of bits("0","1"). But I'm using an enum
variable to store the data.
[Flags]
public enum LaneCapabilities
{
MLT = 0,
ACM = 1,
AVI = 2,
ATIM = 4,
Degraded = 8,
CCS = 16
}
Ended up with this code:
string[] flags = ReadRTMessage().Split(' ');
LaneCapabilities capable = new LaneCapabilities();
for( int i = 0; i<flags.Length; i++)
{
switch(i)
{
case 0 :
if (flags[0] == "1")
capable |= LaneCapabilities.ACM;
break;
case 1 :
if (flags[1] == "1")
capable |= LaneCapabilities.ATIM;
break;
case 2:
if (flags[2] == "1")
capable |= LaneCapabilities.AVI;
break;
case 3:
if (flags[3] == "1")
capable |= LaneCapabilities.CCS;
break;
case 4:
if (flags[1] == "1")
capable |= LaneCapabilities.Degraded;
break;
case 5:
if (flags[1] == "5")
capable |= LaneCapabilities.MLT;
break;
}
}
Seems like a lot of work for a .NET app. Any suggestions?