Ich habe eine IEnumerable<T>
. Ich möchte für jeden Gegenstand der Sammlung eine Sache erledigen, mit Ausnahme des letzten Gegenstandes, zu dem ich noch etwas anderes machen möchte. Wie kann ich das ordentlich codieren? In PseudocodeIEnumerable foreach, etwas anderes für das letzte Element tun
foreach (var item in collection)
{
if (final)
{
g(item)
}
else
{
f(item)
}
}
Also, wenn mein IEnumerable Enumerable.Range(1,4)
wäre, würde ich tun, f (1) f (2) f (3) g (4). NB. Wenn mein IEnumerable die Länge 1 hat, möchte ich g (1).
Mein IEnumerable ist irgendwie beschissen, was Count()
so teuer macht wie das ganze Ding zu schleifen.
Dank Ich habe das in eine Erweiterungsmethode https://gist.github.com/2781446 –
@OJay Nö; das erste Element wird verarbeitet, sobald wir wissen, dass es nicht das * final * -Element ist, also: wenn wir das zweite gelesen haben, dass wir im ersten Kommentar mit 'last' arbeiten, aka dem ** vorherigen ** Element, * nicht * der aktuelle –
'IEnuemerable' sollte' IEnumerable' lesen Ich rate. – Blairg23