Так как Result
настроен правильно как битовые флаги enum (что означает, что одна переменная перечисления может содержать несколько значений перечисления), вы можете просто or
их вместе получить единую комбинацию перечисление , чтобы пройти. Самый простой способ сделать это - использовать Enumerable . Агрегат метод
Применяет функцию накопителя к последовательности.
var result = resultFlags.Aggregate((x, y) => x |= y);
Это то же самое, что комбинировать их вручную, например,
Days meetingDays = Days.Tuesday | Days.Thursday;
Причина, по которой битовые флаги работают, заключается в том, как размечаются числа, каждое значение не является взаимоисключающим и может быть легко упаковано и распаковано в двоичном виде с использованием битовых операций (следовательно,имя битовые флаги ). Они были вокруг навсегда.
Дальнейшее чтение
Типы перечисления в виде битовых флагов
Вы можете использовать тип перечисления дляопределить битовые флаги, что позволяет экземпляру типа перечисления хранить любую комбинацию значений, определенных в списке перечислителей
Вы создаете перечисление битовых флагов, применяя атрибут System.FlagsAttribute и определяя значения соответствующим образомчтобы над ними можно было выполнять побитовые операции AND, OR, NOT и XOR. В перечисление битовых флагов включите именованную константу со значением ноль, что означает «флаги не установлены».