2013-03-17 2 views
0

У меня есть перечисление определяется какПреобразование Enum в список

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

и хотите использовать метод, описанный here получить List<SecurityRole>.

Таким образом, линия

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

должен работать, но IntelliSense обыкновение позволить свойству .ToList

Я использую System.Linq. Есть ли еще какая-то другая ссылка?

+1

Ваш код действителен, и выполняется успешно. Как выстрел в темноте, возможно, Visual Studio запуталась? Есть ли ошибки компиляции или просто ошибки IntelliSense? Попробуйте перезапустить VS. –

+0

@kirsten это работает для меня, и это правильный синтаксис, см. Официальный вопрос по этой теме: http://stackoverflow.com/questions/1167361/how-do-i-convert-an-enum-to-a- list-in-c - Можете ли вы удалить '.' перед' ToList() 'и нажать' .', если это не удастся, нажмите Ctrl + Space, чтобы вызвать intellisense. –

+0

просто попробуйте перестроить решение и повторите попытку, потому что код ur должен работайте с использованием: 'using System.Linq' –

ответ

2

using System.Linq должен это сделать. ToList() - IEnumerable<T> способ расширения. Вероятно, проверьте, есть ли в вашем коде какие-либо другие ошибки компиляции.

+0

' Cast 'также определен в классе« Enumerable » –

+0

Были ошибки компилятора. Теперь он работает, и они решены. –

2

Проверить решение здесь: How do I convert an enum to a list in C#?

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

Это вернет 'IEnumerable '. Чтобы вернуть «Список », ответы там рекомендуют вызывать 'ToList()', как это сделал OP. –

Смежные вопросы