I would use the tuple syntax in C # 7 for this:
class Program
{
enum FizzBuzz
{
None,
Fizz,
Buzz,
FizzBuzz
}
static void Main(string[] args)
{
Dictionary<(bool, bool), FizzBuzz> matchMap =
new Dictionary<(bool, bool), FizzBuzz>
{
{ (false, false), FizzBuzz.None },
{ (true, true), FizzBuzz.FizzBuzz },
{ (true, false), FizzBuzz.Fizz },
{ (false, true), FizzBuzz.Buzz },
};
for (int i = 0; i < 16; i++)
{
Console.WriteLine($"i: {i}, (i % 3 == 0, i % 5 == 0): {matchMap[(i % 3 == 0, i % 5 == 0)]}");
}
}
}
Now you need to use the NuGet package manager to add the package ValueTuple
to your project to compile the syntax. Types ValueTuple
implement appropriate equality comparisons so the dictionary can work.
source
share