Cá nhân, trong khi tôi hoàn toàn tốt với các giải pháp Enum.Parse cho các kịch bản không thực hiện (đọc: một off chạy chức năng này đôi khi ... và có rất nhiều kịch bản như vậy để chắc chắn), tôi không thể đếm ngược suy nghĩ có thể liên quan đến một số phương pháp kiểu phản chiếu khi hàm này cần được thực hiện trong vòng lặp trên hàng trăm/nghìn cộng với giá trị enum cùng một lúc.Gack!
Vì vậy, giải pháp sau đây là một trong những giải pháp tốt nhất của cả hai thế giới.
Chỉ truy xuất tất cả các giá trị của enum lúc khởi động hoặc không, bất cứ khi nào nó hoạt động tốt nhất cho bạn (dưới đây là một cách để làm điều đó), và sau đó xây dựng một từ điển với chúng.
private static Dictionary<string, Color> colorDictionary;
public static Dictionary<string, Color> ColorDictionary
{
get
{
if (colorDictionary== null) {
colorDictionary = new Dictionary<string, Color>();
var all = Enum.GetValues(typeof(Color)).OfType<Color>();
foreach (var val in all)
dict.Add(val.ToString(), val);
}
return colorDictionary;
}
}
Nguồn
2012-12-03 05:04:46
Tôi nghĩ bạn không thể bật các chuỗi. –
@Ramon: Bạn sai - trong C#, chúng tôi luôn có thể bật chuỗi. –
@Ramon: Tất nhiên bạn có thể. –