Wenn foreach
Wenn ich eine allgemeine Liste durcharbeite, möchte ich oft etwas anderes für das erste Element in der Liste tun:
List<object> objs = new List<object>
{
new Object(),
new Object(),
new Object(),
new Object()
};
foreach (object o in objs)
{
if (o == objs.First())
{
System.Diagnostics.Debug.WriteLine("First object - do something special");
}
else
{
System.Diagnostics.Debug.WriteLine("object Do something else");
}
}
Dies wird ausgegeben:
First object - do something special
object Do something else
object Do something else
object Do something else
Das ist alles schön und gut.
Wenn meine generische Liste jedoch vom Typ Wert ist, schlägt dieser Ansatz fehl.
List<int> ints = new List<int> { 0, 0, 0, 0 };
foreach (int i in ints)
{
if (i == ints.First())
{
System.Diagnostics.Debug.WriteLine("First int - do something special");
}
else
{
System.Diagnostics.Debug.WriteLine("int Do something else");
}
}
Dies wird ausgegeben:
First int - do something special
First int - do something special
First int - do something special
First int - do something special
Ich weiß, dass ich dies umprogrammieren könnte, um eine boolean
Flaggenvariable oder traditionelle for
Schleife, aber ich frage mich, ob es eine Möglichkeit gibt, herauszufinden, ob eine foreach-Schleife auf der ersten Iteration seiner Schleifenbildung ist.