C#: Index einer Liste ausgeben?
Hallo!
Wir stellen uns vor, wir haben in C# eine neue string-Liste angelegt und füllen diese erstmals mit Namen.
List<string> nameList = new List<string>();
nameList.Add("Max");
nameList.Add("Marie");
nameList.Add("Hubert");
nameList.Add("Lisa");
Und nun will ich die Liste mit einer foreach-Schleife ausgeben.
foreach(string name in nameList)
{
CWL(name);
}
Allerdings will ich nicht nur den Namen, sondern auch einen Index dazu ausgeben... Geht das mit der foreach-Schleife, oder ist dabei unbedingt die normale for-Schleife notwendig?
Danke
2 Antworten
![](https://images.gutefrage.net/media/user/DoWhileTrue/1603527175623_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.png?v=1603527176000)
Wenn die Strings in der Liste eindeutig sind kannst du folgendes machen:
foreach (string name in nameList)
{
Console.WriteLine(name);
Console.WriteLine(nameList.IndexOf(name));
}
Ansonsten kommst du um eine index-basierte Schleife nicht drumherum. Mal abgesehen davon dass es auch deutlich eleganter ist in diesem Fall eine for-Schleife zu nutzen, da ansonsten für jeden String der Index erstmal aufwändig ermittelt werden muss.
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Ok danke, hier ist eine for-Schleife wirklich besser, LG
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Eine Zählerschleife ist nicht unbedingt notwendig, aber wäre für deinen Fall am besten geeignet.
Dennoch eine Lösung mit foreach:
int index = 0;
foreach (string name in nameList)
{
Console.WriteLine($"{index}: {name}");
++index;
}