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.