我想找到一种方法来检查我的变量中是否包含一组值.
[Flags]
public enum Combinations
{
Type1CategoryA = 0x01, // 00000001
Type1CategoryB = 0x02, // 00000010
Type1CategoryC = 0x04, // 00000100
Type2CategoryA = 0x08, // 00001000
Type2CategoryB = 0x10, // 00010000
Type2CategoryC = 0x20, // 00100000
Type3 = 0x40 // 01000000
}
bool CheckForCategoryB(byte combinations)
{
// This is where I am making up syntax
if (combinations in [Combinations.Type1CategoryB, Combinations.Type2CategoryB])
return true;
return false;
// End made up syntax
}
Run Code Online (Sandbox Code Playgroud)
我是Delphi的.NET移植工具.这是用Delphi编写的相当简单的代码,但我不知道如何在C#中编写它.
Mar*_*ell 16
如果你的意思是"至少有一面旗帜":
return (combinations
& (byte)( Combinations.Type1CategoryB | Combinations.Type2CategoryB)) != 0;
Run Code Online (Sandbox Code Playgroud)
另外 - 如果你声明它Combinations combinations(而不是byte),你可以放弃(byte)
bool CheckForCategoryC(Combinations combinations)
{
return (combinations & (Combinations.Type1CategoryB | Combinations.Type2CategoryB) ) != 0;
}
Run Code Online (Sandbox Code Playgroud)
如果你的意思是"正是其中之一",我只会使用switch或if等.