我有一個枚舉宣佈爲比較枚舉標誌(位組合)與LINQ
[Flags]
public enum PermissionEnum
{
[EnumStringValue("None")]
None = 0x0,
[EnumStringValue("Create")]
Create = 0x1,
[EnumStringValue("Edit")]
Edit = 0x2,
[EnumStringValue("View")]
View = 0x4
}
隨後,我有一些LINQ試圖獲得可用的最高權限。
List<SecurityRolePermissionView> AvailablePermissions = GetPermissions();
SecurityRolePermissionView HighestPermission = AvailablePermissions.OrderByDescending(o => o.Permission).FirstOrDefault();
隨着目前的枚舉值,這似乎做它建議它會做。不過,我相當確信這段代碼是不正確的,但我不確定我能解釋爲什麼或如何實現正確的實現。
無論哪種方式,有人可以請客氣一點,以確認這事實上是不正確的(以及爲什麼),並提供解釋如何實現我想要的結果?
編輯:我可能沒有足夠清楚解釋我的最高權限是什麼。這是一個標誌枚舉。因此它可以包含無,創建,編輯,視圖的任意組合。我期望找到的最高級別是Create + Edit + View。如果失敗,編輯+查看和最後查看
「擁有最高權限」是什麼意思?視圖比編輯更大,因爲這是你的樣本會給你的。 –
公平點,但這是一個有點組合,我從來沒有視圖與編輯 - 它總是視圖+編輯或視圖+創建,我猜這就是爲什麼它的工作? –
如果'AvailablePermissions'有兩個元素和一個帶有Edit的元素,另一個帶有View,那麼應該返回什麼?具有查看或編輯功能的'SecurityRolePermissionView' –