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.