Miten enumerate C# enum
Enumeita käytetään laajalti C#
kielessä.
Ja on olemassa 4 tapaa enumerate enum C#
.
C# Enum.GetValues()
käyttäminen .Net 5:ssä ja sitä uudemmissa ohjelmissa.C# Enum.GetValues()
käyttäminen vanhemmissa .Net-versioissa.- Käyttämällä
C# Enum.GetNames()
enum erate enum nimet merkkijonoina. - Käyttäminen
Linq
Käydään läpi esimerkki, jotta ymmärrämme sen paremmin.
Ensin luodaan C# enum
public enum LogLevel
{
ERROR,
WARN,
INFO,
DEBUG
}
The enum
edustaa erityyppisiä kirjaustasoja.
Nyt näemme erilaisia tapoja enumerate the C# enum
.
C# Enum.GetValues()
Generic-menetelmän käyttäminen .Net 5:ssä ja sitä uudemmissa ohjelmissa
Jos käytät uusinta versiota .Net
, eli .Net 5
tai uudempaa versiota, voit käyttää geneeristä versiota Enum.GetValues
-menetelmästä enumerate the C# enum
.
void loopEnum()
{
LogLevel[] logLevels = Enum.GetValues<LogLevel>();
foreach (LogLevel logLevel in logLevels)
{
Console.WriteLine(logLevel.ToString());
}
}
Uusi geneerinen versio Enum.GetValues
palauttaa enum -arvojen joukon.
Lisäksi voimme käyttää for
- tai foreach
-lausekkeita listaamaan C# enum
nimet.
Koska array sisältää enum
tyypin, se on muunnettava merkkijonoksi ToString()
-menetelmällä.
C# Enum.GetValues()
-menetelmän käyttäminen vanhemmissa .Net-versioissa.
Vanhemmissa versioissa .Net
ei ole käytettävissä geneeristä menetelmää Enum.GetValues()
-menetelmää varten.
Sinun on välitettävä typeof()
enum parametrina Enum.GetValues()
-metodille.
Array logLevels = Enum.GetValues(typeof(LogLevel))
Ja se palauttaa enum arvot tyyppiä System.Array
ja lisäksi voimme käyttää foreach
lauseketta kiertääksemme läpi arvot C# enum
nimet.
void loopEnum()
{
Array logLevels = Enum.GetValues(typeof(LogLevel))
foreach (LogLevel logLevel in logLevels)
{
Console.WriteLine(logLevel.ToString());
}
}
Jos haluat IEnumerable
tuloksen, voimme edelleen käyttää Enum.GetValues()
-metodia.
void loopEnum()
{
var logLevels = Enum.GetValues(typeof(LogLevel)).Cast<LogLevel>();
foreach (LogLevel logLevel in logLevels)
{
Console.WriteLine(logLevel.ToString());
}
}
Käyttämällä C# Enum.GetNames()
enum erate enum nimiä merkkijonoina
C# Enum.GetValues()
menetelmä palauttaa enum tyyppien joukon.
Siksi muunnimme enum nimet merkkijonoksi ennen niiden tulostamista konsoliin.
Metodin C# Enum.GetNames()
avulla voimme enumerate enum nimet merkkijonoina, jolloin niitä ei tarvitse muuntaa merkkijonoiksi.
Jos käytät .Net 5
ja sitä uudempaa, voit käyttää yleistä C# Enum.GetNames()
-funktiota.
void loopEnum()
{
string[] logLevels = Enum.GetNames<LogLevel>();
foreach (string logLevel in logLevels)
{
Console.WriteLine(logLevel);
}
}
Vanhemmissa versioissa meidän on annettava typeof()
enum -parametri.
void loopEnum()
{
string[] logLevels = Enum.GetNames(typeof(LogLevel));
foreach (string logLevel in logLevels)
{
Console.WriteLine(logLevel);
}
}
Jos siis halutaan enumerate-nimet merkkijonoina, voidaan käyttää C# Enum.GetNames()
-menetelmää.
Käyttämällä Linq
Voimme käyttää Linq forEach
-menetelmää enumerate C# enum, Enum.GetValues()
ja Enum.GetNames()
-menetelmien avulla.
Käytä .Net 5
ja sen yläpuolella alla olevaa koodinpätkää.
//Using Enum.GetValues
Enum.GetValues<LogLevel>()
.ToList()
.ForEach(loglevel => Console.WriteLine(loglevel.ToString()));
//Using Enum.GetNames
Enum.GetNames<LogLevel>()
.ToList()
.ForEach(loglevel => Console.WriteLine(loglevel));
Vanhemmissa versioissa
//Using Enum.GetValues
Enum.GetValues(typeof(LogLevel))
.Cast<LogLevel>().ToList()
.ForEach(loglevel => Console.WriteLine(loglevel.ToString()));
//Using Enum.GetNames
Enum.GetNames(typeof(LogLevel))
.ToList()
.ForEach(loglevel => Console.WriteLine(loglevel));
Yhteenveto
Tässä opetusohjelmassa opimme enumerate enum C#-kielellä käyttäen Enum.GetValues()
- ja Enum.GetNames()
-metodia.