Sto utilizzando un enumerato con l'attributo flags come modo di monitoraggio dello stato.Trovare il flag impostato più alto in un valore enum
Un esempio è il seguente:
Created = 1
Completed = 2
Dispatched = 4
Senza scrivere qualcosa di troppo rigida (se verifica questo, fai quello, se verifica che, fare questo) Voglio essere in grado di trovare la bandiera più alta che è stata impostare quindi in questo esempio:
Item.Status = Status.Created | Status.Completed
il metodo mitico ritornerebbe 2 - come completata è il flag impostato con il valore più alto.
GetMaxSetFlagValue(Item.Status) // returns 2
Ho trovato domande che ruotavano attorno all'enumerazione attuale, ma non un valore che utilizza le bandiere. Sono abbastanza sicuro che questo potrebbe essere raggiunto con Linq ...?