Enumitega töötamine C#-s
C# keeles loendi kaudu loendamine võib algajatele pisut segadust tekitada. See põhjustab sageli kompileerimisvigu, kui seda ei tehta õigesti. Tõhusa kodeerimise jaoks on ülioluline aru saada, kuidas õige viis loendiväärtuste itereerimiseks.
Selles artiklis käsitleme lihtsat lähenemist enumi loetlemiseks C#-s, kasutades näidet, mis toob esile levinud lõksud ja õige meetodi. Lõpuks saate hõlpsalt loetleda kõik loendid.
Käsk | Kirjeldus |
---|---|
Enum.GetValues(typeof(Suit)) | Otsib kindlaksmääratud loendis olevate konstantide väärtuste massiivi. |
Enum.GetValues() | Tagastab kõigi loendiväärtuste massiivi. |
Cast<T>() | Teisendab IEnumerable elemendid määratud tüübiks. |
Console.WriteLine() | Kirjutab standardsesse väljundvoogu määratud andmed, millele järgneb praeguse rea lõpetaja. |
foreach | Itereerib kogu või massiivi kaudu, käivitades iga elemendi jaoks koodiploki. |
public enum | Määratleb loenduse, eristatava tüübi, mis koosneb nimeliste konstantide komplektist, mida nimetatakse loendusloendiks. |
Enum-iteratsiooni üksikasjalik seletus
Kaasasolevad skriptid näitavad, kuidas C# keeles loendi kaudu õigesti loendada. Esimene skript kasutab kõigi väärtuste massiivi hankimiseks enum. Seejärel itereeritakse seda massiivi a-ga tsükkel, mis võimaldab programmil käivitada DoSomething(suit) meetod iga loendi väärtuse jaoks. See lähenemine on lihtne ja kasutab enumite tõhusaks käsitlemiseks sisseehitatud C# meetodeid.
Teine skript saavutab sama eesmärgi, kuid kasutab LINQ-i täiendava paindlikkuse ja loetavuse tagamiseks. Helistades , kantakse loendi väärtused loendisse tüüp, mis võimaldab vajadusel täiustatud LINQ-operatsioone. The loop töötleb seejärel iga masti sarnaselt, kutsudes esile DoSomething(suit) meetod iga loendi väärtuse jaoks. Mõlemad skriptid on olulised enumite itereerimiseks ja tavaliste lõkse, nagu enumi tüübi käsitlemine muutujana, vältimiseks.
Enum väärtuste loetlemine C#-s
C# kasutamine Enumi kaudu itereerimiseks
using System;
using System.Linq;
public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds
}
public class Program
{
public static void Main()
{
foreach (Suit suit in Enum.GetValues(typeof(Suit)))
{
DoSomething(suit);
}
}
public static void DoSomething(Suit suit)
{
Console.WriteLine(suit);
}
}
Enumite õige loendamine C#-s
LINQ kasutamine enumi iteratsiooniks
using System;
using System.Linq;
public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds
}
public class Program
{
public static void Main()
{
var suits = Enum.GetValues(typeof(Suit)).Cast<Suit>();
foreach (var suit in suits)
{
DoSomething(suit);
}
}
public static void DoSomething(Suit suit)
{
Console.WriteLine(suit);
}
}
Enumi meetodite ja omaduste mõistmine
Lisaks enumite kordamisele on oluline mõista muid kasulikke meetodeid ja omadusi, mida enumid C#-s pakuvad. Üks selline meetod on , mis tagastab määratud loendis oleva konstandi nime, millel on määratud väärtus. See võib olla eriti kasulik loendiväärtuste kasutajasõbralike nimede kuvamisel.
Teine kasulik omadus on , mis kontrollib, kas konkreetses loendis on määratud väärtus või nimi. See meetod on mugav valideerimiseks, et tagada, et antud väärtus on tõepoolest osa määratletud loendikomplektist. Nende meetodite mõistmine võimaldab arendajatel kasutada oma rakendustes enumite täielikku võimsust, tagades tugeva ja loetava koodi.
- Kuidas saada kõik loendi nimed?
- Kasuta enumis olevate konstantide nimede massiivi hankimiseks.
- Kas ma saan teisendada stringi loendi väärtuseks?
- Jah, kasuta stringi teisendamiseks vastavaks loendi väärtuseks.
- Kuidas kontrollida, kas loendis on väärtus olemas?
- Kasuta et kontrollida, kas loendis on konkreetne väärtus.
- Kas enumeid saab kasutada bitipõhiste operatsioonidega?
- Jah, määrates enumi koos atribuuti, saab enumeid kasutada bitipõhiste toimingute jaoks.
- Kuidas saada enumi aluseks olevat tüüpi?
- Kasuta enumi aluseks oleva tüübi saamiseks.
- Mis on enumi vaikeväärtus?
- Loendi vaikeväärtus on väärtus, mis on seotud nulliga, mis on tavaliselt loendis esimene väärtus.
- Kas ma saan väärtuste asemel itereerida loendinimede kaudu?
- Jah, võite kasutada nimede kaudu korrata.
- Kuidas ma saan võrrelda kahte loendi väärtust?
- Enum väärtusi saab võrrelda standardsete võrdlusoperaatoritega nagu , , ja >.
Kokkuvõtteks võib öelda, et enumi loetlemine C#-s nõuab keele pakutavate õigete meetodite ja omaduste mõistmist. Kasutades võimaldab otsest iteratsiooni, samas kui LINQ pakub täiendavat paindlikkust. Nende meetodite õige kasutamise tagamine hoiab ära tavalised lõkse, näiteks enum-tüübi käsitlemist muutujana. Lisaks kasutatakse muid loendimeetodeid, nagu ja suurendab teie koodi tugevust. Nende tehnikate valdamine on tõhusa C# programmeerimise jaoks hädavajalik, võimaldades teil oma rakendustes enumeid tõhusalt ja täpselt käsitleda.