Comment obtenir une référence vers le dernier élément de la première et de l'utiliser ensuite à des fins de comparaison à l'intérieur de la boucle foreach? Je ne suis pas dire que vous devriez le faire que je me serait d'utiliser l'indice de boucle, comme mentionné par KlauseMeier. Et désolé, je ne connais pas Ruby donc l'exemple suivant est en C#! L'espérance de u dont l'esprit :-)
string lastItem = list[list.Count - 1];
foreach (string item in list) {
if (item != lastItem)
Console.WriteLine("Looping: " + item);
else Console.Writeline("Lastone: " + item);
}
J'ai revu le code suivant pour comparer par référence non valeur (utiliser uniquement les types de référence pas de types de valeur). le code suivant devrait soutenir plusieurs objets contenant de la même chaîne (mais pas le même objet de type string) depuis MattChurcy l'exemple ne précise pas que les cordes doivent être distinctes et j'ai utilisé LINQ Dernière méthode de calcul de l'indice.
string lastItem = list.Last();
foreach (string item in list) {
if (!object.ReferenceEquals(item, lastItem))
Console.WriteLine("Looping: " + item);
else Console.WriteLine("Lastone: " + item);
}
Les Limitations du code ci-dessus. (1) Il ne peut fonctionner que pour des chaînes ou des types de référence pas de types de valeur. (2) Même objet ne peut apparaître qu'une fois dans la liste. Vous pouvez avoir différents objets contenant le même contenu. Les chaînes littérales ne peut pas être utilisé à plusieurs reprises depuis C# ne pas créer un objet unique pour les chaînes qui ont le même contenu.
Et j'ai pas stupide. Je connais un indice de boucle est celle à utiliser. Je l'ai déjà dit quand j'ai posté la réponse initiale. J'ai apporté la meilleure réponse que je peux dans le contexte de la question. Je suis trop fatigué pour garder expliquant ce donc, pouvez-vous tout simplement voter pour supprimer ma réponse. Je serai donc heureux si celui-ci s'en va. merci