Enumi loetlemine C#-s: lühijuhend

Temp mail SuperHeros
Enumi loetlemine C#-s: lühijuhend
Enumi loetlemine C#-s: lühijuhend

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 Enum.GetValues(typeof(Suit)) kõigi väärtuste massiivi hankimiseks Suit enum. Seejärel itereeritakse seda massiivi a-ga foreach 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 Enum.GetValues(typeof(Suit)).Cast<Suit>(), kantakse loendi väärtused loendisse Suit tüüp, mis võimaldab vajadusel täiustatud LINQ-operatsioone. The foreach 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 Enum.GetName(), 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 Enum.IsDefined(), 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.

Korduma kippuvad küsimused enumite loendamise kohta C#-s

  1. Kuidas saada kõik loendi nimed?
  2. Kasuta Enum.GetNames(typeof(Suit)) enumis olevate konstantide nimede massiivi hankimiseks.
  3. Kas ma saan teisendada stringi loendi väärtuseks?
  4. Jah, kasuta Enum.Parse(typeof(Suit), "Spades") stringi teisendamiseks vastavaks loendi väärtuseks.
  5. Kuidas kontrollida, kas loendis on väärtus olemas?
  6. Kasuta Enum.IsDefined(typeof(Suit), value) et kontrollida, kas loendis on konkreetne väärtus.
  7. Kas enumeid saab kasutada bitipõhiste operatsioonidega?
  8. Jah, määrates enumi koos [Flags] atribuuti, saab enumeid kasutada bitipõhiste toimingute jaoks.
  9. Kuidas saada enumi aluseks olevat tüüpi?
  10. Kasuta Enum.GetUnderlyingType(typeof(Suit)) enumi aluseks oleva tüübi saamiseks.
  11. Mis on enumi vaikeväärtus?
  12. Loendi vaikeväärtus on väärtus, mis on seotud nulliga, mis on tavaliselt loendis esimene väärtus.
  13. Kas ma saan väärtuste asemel itereerida loendinimede kaudu?
  14. Jah, võite kasutada foreach (string name in Enum.GetNames(typeof(Suit))) nimede kaudu korrata.
  15. Kuidas ma saan võrrelda kahte loendi väärtust?
  16. Enum väärtusi saab võrrelda standardsete võrdlusoperaatoritega nagu ==, !=, <ja >.

Peamised ülevaated loendi loendamise kohta

Kokkuvõtteks võib öelda, et enumi loetlemine C#-s nõuab keele pakutavate õigete meetodite ja omaduste mõistmist. Kasutades Enum.GetValues 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 Enum.GetName ja Enum.IsDefined 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.