В C# я сохраняю значение перечисления флагов в базе данных в виде байта. Например, для следующих флагов перечисления:C# - как проверить, совпадает ли значение байта с любыми флагами в указанном флажке перечисления?
[Flags]
public enum Options
{
None = 0,
First = 1,
Second = 2,
Third = 4
}
Если я хочу, чтобы записать «Первый» и «Второй», я сохраняю это как байты «3» в поле «Параметры» в записи в база данных.
Так при использовании LINQ, как я могу проверить, если значение в базе данных соответствует «любой» из вариантов в качестве аргумента, переданного в качестве перечисления «Options», что-то вроде этого псевдокода:
public static Something(Options optionsToMatch)
{
db.MyEntity.Get(a => a.options contains any of the options in optionsToMatch);
Почему это downvoted? –
Не «имеет какой-либо вариант» так же, как «не имеет« ничего »? – Sehnsucht
Нет, я имею в виду, что если байт (a.options) представляет любой из параметров, переданных в 'optionsToMatch', тогда это должно быть совпадение –