Soru Enum'u Liste'ye Dönüştür [çoğalt]


Bu sorunun zaten bir cevabı var:

Aşağıdaki Enum Değerlerini aldığımı söyle

enum Language
    {
       CSharp= 0,
        Java = 1,
        VB = 2

    }

Bunları değerlerin listesine dönüştürmek istiyorum (i.e) { CSharp,Java,VB}.

Onları bir değerler listesine nasıl dönüştürebilirim?


25
2018-06-15 12:18


Menşei


Şuna baksana Enum.GetValues. - Corak


Cevaplar:


Language[] result = (Language[])Enum.GetValues(typeof(Language))

Enumların listesini istiyorsanız, değerlerinizi alırsınız.

İsim listesinin bir listesini istiyorsanız, şunu kullanın:

string[] names = Enum.GetNames(typeof(Languages));

34
2018-06-15 12:22





Gereksiniminizi doğru anlıyorsam, bunun gibi bir şey arıyorsunuz demektir.

var enumList = Enum.GetValues(typeof(Language)).OfType<Language>().ToList();

12
2018-06-15 12:20



Neden yapıyorsun OfType<Language>().ToList() sadece düz bir şekilde yayınlayabildiğiniz zaman Languages[]? - It'sNotALie.
@newStackExchangeInstance Evet, doğru


Enum öğelerinizi listede Dil türü olarak kaydetmek istiyorsanız:

Enum.GetValues(typeof(Language)).Cast<Language>().ToList();

Bunları dize olarak saklamak istediğinizde:

Enum.GetValues(typeof(Language)).Cast<Language>().Select(x => x.ToString()).ToList();

6
2018-06-15 12:23





Bu kodu kullanabilirsiniz

  static void Main(string[] args)
  {
   enum Days { Sat, Sun, Mon, Tue, Wed, Thu, Fri };

    Array arr = Enum.GetValues(typeof(Days));
    List<string> lstDays = new List<string>(arr.Length);
    for (int i = 0; i < arr.Length; i++)
    {
        lstDays.Add(arr.GetValue(i).ToString());
    }
  }

0
2018-06-15 12:21



Bu çok karmaşık bir şey. - It'sNotALie.