Parcours de ICollection sur 2 niveaux
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>
Code:
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
} |
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).
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