Tôi biết cách lặp qua danh sách các thuộc tính enum, nhưng làm cách nào tôi lặp qua tất cả các thuộc tính enum "đã chọn"? Ví dụ: nếu một người đã làm Prop1 | Prop2
chống lại public enum Foo { Prop1; Prop2; Prop3 }
, tôi sẽ đạt được điều này như thế nào?Lặp qua các giá trị "Đã chọn" Enum?
Đây là những gì tôi có bây giờ:
var values = Enum.GetValues(typeof(FileStatus)).Cast<FileStatus>();
foreach (var value in values)
{
}
Nó vòng qua tất cả các thuộc tính enum, nhưng tôi muốn để lặp chỉ có những người đã được "chọn".
Cập nhật: [Flags]
thuộc tính đã được đặt.
Cập nhật 2: Enum chứa một số lượng lớn thuộc tính, tôi không thể và sẽ không gõ/hardcode một kiểm tra thuộc tính duy nhất, thay vào đó tôi muốn tự động lặp qua từng thuộc tính và kiểm tra xem trường hợp enum của tôi có chứa Bar
hay không bộ mục được lặp lại.
Bạn có dính các FlagsAttribute trên enum? – scottheckel
@ Hexxagonal: Không quan trọng. Tuy nhiên, chỉ định rõ ràng các giá trị quan trọng rất nhiều. –
@Hexxagonal Đó thực sự là tùy chọn nhiều hơn bất cứ điều gì. Các enums có thể hoặc có thể không phải là mỗi quyền hạn của hai. Có hay không cờ đạt được. được thiết lập * nên * vấn đề, nhưng thực sự nó không. – Servy