3 olika sätt att slinga genom en C#-lista
List<T>
är en av de mest använda datastrukturerna i C#-språket.
Att iterera över List<T>
och utföra vissa operationer på listelement är ganska vanligt i våra dagliga projekt.
För att loopa genom en lista i C# kan vi använda tre olika sätt.
- Genom att använda C#
foreach
. - Med hjälp av C#
List.ForEach
-metoden. - Användning av en enkel for-slinga.
Låt oss gå igenom ett exempel för att förstå det bättre.
Först skapar vi en enkel C#-lista.
List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
Nu kommer vi att se olika sätt att slinga en C#-lista.
Med hjälp av C# foreach
Att använda foreach
-angivelsen för att slinga en C#-lista är en mycket använd metod.
Dessutom kan vi utföra vilken operation som helst på listelementen.
I exemplet nedan har jag skapat en lista med strängar.
Sedan loopar jag listan med hjälp av foreach
och skriver ut listelementen på konsolen.
///Method to Loop C# list
void loopList()
{
List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
foreach (string lang in languages)
{
Console.WriteLine(lang);
}
}
Nu ska vi skapa en lista med objekt och slinga dem med hjälp av foreach
.
Vi definierade en klass Person
och skapade en lista med två personelement.
List<Person> persons = new List<Person>()
{
new Person() { Id = 1, Name="Arun" },
new Person() { Id = 2, Name="Kumar"}
};
Nu kan vi använda foreach
-anvisningen för att gå igenom en lista med objekt.
void loopListOfObjects(List<Persons> persons){
foreach(var person in persons)
{
Console.WriteLine(person.Name);
Console.WriteLine(person.Id);
}
}
Använda C# List.ForEach
-metoden
List<T>.ForEach
metoden action
utför den angivna åtgärden på varje element i listan.
Den accepterar Action<T>
en delegatparameter.
Följande exempel visar en loop genom listan med objekt med hjälp av Action<T>
delegat.
persons.ForEach((person) =>
{
Console.WriteLine(person.Name);
Console.WriteLine(person.Id);
});
Användning av for
Vi kan använda det gamla uttalandet for
för att slinga oss igenom en C#-lista om du vill utföra någon åtgärd på listelementen baserat på indexet.
Annars kan du använda foreach
eller List<T>.ForEach()
metoder.
for(var i=0;i<persons.Count;i++)
{
Console.WriteLine(persons[i].Name);
Console.WriteLine(persons[i].Id);
}
Sammanfattning
I den här handledningen lärde vi oss hur man loopar genom en lista i C# med hjälp av foreach
, List<T.ForEach
och for
.