Si vous avez juste besoin de faire quelque chose avec le dernier élément (par opposition à quelque chose de différents avec le dernier élément, alors l'utilisation de LINQ sera utile ici :
Item last = Model.Results.Last();
// do something with last
Si vous avez besoin de faire quelque chose de différent avec le dernier élément, vous aurez besoin de quelque chose comme :
Item last = Model.Results.Last();
foreach (Item result in Model.Results)
{
// do something with each item
if (result.Equals(last))
{
// do something different with the last item
}
else
{
// do something different with every item but the last
}
}
Cependant, vous devrez probablement écrire un comparateur personnalisé pour vous assurer que l'élément est le même que celui renvoyé par la méthode Last()
.
Cette approche doit être utilisée avec prudence car Last
peut avoir à itérer dans la collection. Si ce n'est pas un problème pour les petites collections, cela peut avoir des conséquences sur les performances si la collection devient importante. Cette méthode échouera également si la liste contient des éléments en double. Dans ce cas, quelque chose comme ceci pourrait être plus approprié :
int totalCount = result.Count();
for (int count = 0; count < totalCount; count++)
{
Item result = Model.Results[count];
// do something with each item
if ((count + 1) == totalCount)
{
// do something different with the last item
}
else
{
// do something different with every item but the last
}
}
1 votes
Jetez un coup d'œil à ma réponse aquí pour une solution que j'ai postée à une question connexe.
0 votes
En rapport : Comment obtenir l'index de l'itération actuelle d'une boucle foreach ?