2013-03-17 68 views
0

我有一個枚舉定義爲轉換的枚舉到列表

public enum SecurityRole 
{ 
    Admin = 0, 
    ViewLog = 1, 
    DeleteLog = 2 
} 

,並希望使用該技術描述here獲得List<SecurityRole>

因此行

var lst = Enum.GetValues(typeof(SecurityRole)).Cast<SecurityRole>().ToList(); 

應該工作,但智能感知不會允許.ToList財產

我使用System.Linq。有我需要的其他參考嗎?

+1

你的代碼是有效的,併成功執行。作爲一個黑暗中的鏡頭,也許Visual Studio很困惑?是否有編譯錯誤,或只是智能感知失敗?嘗試重新啓動VS. – 2013-03-17 06:45:04

+0

@kirsten它適用於我,這是正確的語法,請參閱有關此主題的官方問題:http://stackoverflow.com/questions/1167361/how-do-i-convert-an-enum-toa-a- list-in-c - 你可以在'ToList()'前面刪除'.',如果失敗則按'.'按Ctrl + Space調出intellisense – 2013-03-17 07:07:08

+0

只是試着重建解決方案並重試,因爲你的代碼應該因爲你使用的工作:'使用System.Linq' – 2013-03-17 07:43:00

回答

2

using System.Linq應該這樣做。 ToList()是一個IEnumerable<T>擴展方法。可能檢查你的代碼中是否有其他編譯錯誤。

+0

'演員'也定義在'Enumerable'類 – 2013-03-17 07:05:37

+0

有編譯錯誤。它現在起作用了,現在已經解決了。 – 2013-03-17 09:10:36

2

檢查這裏的解決方案:How do I convert an enum to a list in C#?

Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>(); 
+2

這將返回一個'IEnumerable '。要返回'List ',那麼在那裏的答案建議調用'ToList()',就像這裏的OP一樣。 – 2013-03-17 06:51:52