Sudoku/NumberSet.cs (24 lines of code) (raw):
using System;
namespace Sudoku
{
[Flags]
public enum NumberSet
{
_1 = 1 << 1,
_2 = 1 << 2,
_3 = 1 << 3,
_4 = 1 << 4,
_5 = 1 << 5,
_6 = 1 << 6,
_7 = 1 << 7,
_8 = 1 << 8,
_9 = 1 << 9,
_Any = _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9,
}
public static class NumberEx
{
public const int Unknown = 0;
public static void Remove(this ref NumberSet numberSet, int number) => numberSet &= ~(NumberSet)(1 << number);
public static bool Contains(this NumberSet numberSet, int number) => numberSet.HasFlag((NumberSet)(1 << number));
}
}