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 ValueTupleto your project to compile the syntax. Types ValueTupleimplement appropriate equality comparisons so the dictionary can work.
source
share