Comment puis-je limiter le nombre d'éléments itéré dans une boucle foreach?
J'ai le code suivant
foreach (var rssItem in rss.Channel.Items)
{
//...
}
Mais que vous ne voulez 6 éléments pas tous les éléments, comment puis-je le faire en C#?
Qui 6? Tout 6? Les 6 premiers? Aléatoire 6? Le 6 qui répondent à un certain critère?
Quelle est la version de .NET?
Si
Quelle est la version de .NET?
Si
var
est dans l'exemple de code dans la question, il s'agit de C# 3.0+OriginalL'auteur test | 2010-01-06
Vous devez vous connecter pour publier un commentaire.
viens de parcourir le top 6 de la collection:
Génial solution!
cela ne fonctionne pas avec IList<>
OriginalL'auteur hackerhasid
De ne pas être trop évident, mais...
Je sais que c'est de la vieille école, et pas rempli de toutes sortes de méthode d'Extension de la bonté, mais parfois la vieille école fonctionne encore... surtout si vous utilisez toujours .NET 2.0.
Ça va encore travailler pour une liste ou un tableau, qui rss.Canal.Les éléments de l'est probablement. De toute évidence, "Prendre", c'est plus simple si Linq est une option.
Je vous propose un perfectionnement de la langue pour la version 5.0, peut-être. for (;;), les opérateurs ++ et comme aurait besoin de réglage de la "oldschool", quelque chose comme actuelles "dangereux"
Comme je l'ai dit... parfois Linq et les méthodes d'Extension ne sont pas une option b/c de la version de framework, vous travaillez sur.
+1, parfois vous ne pouvez pas toujours utiliser la plus récente et la plus! 🙂
OriginalL'auteur Nick
Utilisation
Énumérable.Prendre
:Noter que
ne pas faire n'importe quoi sauf instancier une mise en œuvre de
IEnumerable
que l'on peut parcourir à produire les six premiers éléments de l'énumération. C'est le report de l'exécution de la fonctionnalité de LINQ to Objects.Note en outre que cela suppose .NET 3.5. Si vous travaillez avec une version antérieure de .NET, vous pouvez utiliser quelque chose le long des lignes suivantes:
Alors:
Cela suppose .NET 2.0. Si vous ne l'utilisez pas .NET 2.0, vous devriez sérieusement envisager la mise à niveau.
Non,
yield
est C# 2.0. Les itérateurs ont été introduites en C# 2.0/.NET 2.0. cf. msdn.microsoft.com/en-us/library/dscyy5s0(SV.80).aspx et msdn.microsoft.com/en-us/library/9k7k7cf0(SV.80).aspxOriginalL'auteur jason
Si vous êtes intéressé par un état (c'est à dire de la commande par date de création)
Peut-être, si vous voulez obtenir ceux créés par un certaines utilisateur, avec la même sorte
OriginalL'auteur p.campbell
Vous pourriez tout aussi bien sortir de la boucle si vous ne souhaitez pas utiliser linq.
OriginalL'auteur mdm20
OriginalL'auteur Wouter