Dans un projet sur lequel je travaille, il y a de très grandes collections (éléments 1M-1B), et les choses sont principalement modifiées en tant que collections.Implémenter votre propre LINQ & IEnumerable <T>
C'est une application en temps réel, et les performances sont donc primordiales.
Pour certaines opérations, comme inverse, BinarySearch (possible?), Etc souffriront plus que d'autres comme Select, etc.
Est-il possible de mettre en œuvre son propre IEnumerable avec MoveNext possible, MovePrev, etc et propres extensions LINQ implémentées qui en profitent?
Si cela se produit, cela arrivera à la fin du projet. Parce que nous devons d'abord le faire fonctionner, puis le rendre plus rapide.
Dans l'ensemble, cela ne devrait pas être trop de travail, non?
Désolé, mais vous ne savez pas exactement comment vous comptez réaliser un gain de performance en roulant votre propre interface pour les séquences. Quel est le plan, ici, exactement? De quel code vous inquiétez-vous et que vous essayez de remplacer? – mquander
J'ajouterais que si vous numérotez les éléments de votre collection par millions, vous ne stockez probablement pas tout cela en mémoire, n'est-ce pas? Donc, une approche naïve de la récupération va vous coûter, en termes de coûts d'accès au disque ou au réseau ou autre. Si vous êtes inquiet au sujet de la performance, vous allez devoir proposer des abstractions plus compliquées que de simples énumérations, de toute façon. – mquander
Il est vraiment large d'inclure tous les détails ici, mais comme un exemple simple, la fonctionnalité inverse par exemple, ou BinarySearch ing une collection pour WhereSorted ou quelque chose. –