2014-12-12 5 views

ответ

5

Вы можете объединить все флаги с помощью | -оператора так:

int myFlag = myVar.Where(a => a.IsSelected) 
        .Select(x => x.Flag) 
        .Aggregate((current, next) => current | next); 
1

ли вы имеете в виду немного флаг, как в двойки?

Как это:

Func<int, int> pow2 = null; 
pow2 = n => n == 0 ? 1 : 2 * pow2(n - 1); 

int myFlag = myVar.Reverse().Select((a, n) => a.IsSelected ? pow2(n) : 0).Sum(); 

Или лет просто значит:

int myFlag = myVar.Where(a => a.IsSelected).Any(); 
Смежные вопросы