Bonjour,
j'ai une collection de la forme ICollection<ExternalData> encapsulé dans une classe afin de masquer cette dernière.
Cette classe renvoie un Enumerator de la forme IEnumerator<ExternalData>
L'objectif est de parcourir la collection et voir si dans le reste de la liste un élément serait proche (je vais comparer différentes Propriétés de la classe ExternalData).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void Funct() { var listEnumerator = collection.GetEnumerator(); // Get enumerator for (var i = 0; listEnumerator.MoveNext() == true; i++) { // Check CheckItem (listEnumerator, listEnumerator.Current); } } void CheckItem(IEnumerator iter, object data) { // Loop from current position until the end }
J'ai donc 2 boucles d'imbriquées :
- La première dans Funct() qui scanne tous les éléments
- La deuxième dans CheckItem() qui scanne dans la même collection à partir de l'élément courant de Funct() et va jusqu'à la fin.
On ne peut pas cloner IEnumerator
La volumétrie des données est assez importante (10 millions d'entrées) donc il n'est pas concevable de convertir les données passées en entrée ou de réallouer de la RAM à la barbare.
Quelqu'un aurait une idée pour un truc qui fonce ?
Merci.
Vincent
Partager