C# List<> de l'Ordre de/Groupe de/Supprimer

Ouf où dois-je commencer...
OK, j'ai une liste que j'ai ,,coupé en petits liste en fonction de deux propriétés. Quand j'ai fini de travailler avec la petite liste que je veux c'est des éléments supprimés de la liste d'origine 🙂

f.ex. J'ai une Liste<> CustomerProducts, qui contient deux valeurs de code client et ProductID. Je commence par la commande de la liste:

var orderedList = CustomerProducts.OrderBy( c => c.CustomerID).ThenBy( c => c.ProductID)ToList( );

Assumer les ordereded liste ressemble maintenant à ceci:

CustomerID = 1, ProductID = 61
CustomerID= 1, ProductID = 61
CustomerID= 1, ProductID = 87
CustomerID= 2, ProductID = 81
CustomerID= 2, ProductID = 53

Maintenant, je veux une nouvelle liste qui ne contient que les deux premiers éléments de la liste (parce qu'ils ont le même code client et ProductID), et la suppression de ces deux éléments de la orderedList, et puis continuer à faire de même pour le reste ... tout le orderedList n'est pas vide.

somehting comme...

while(orderedList.Count > 0)
{
//créer une nouvelle liste qui a les mêmes valeurs...
//faire un peu de travail sur la nouvelle liste
//suppression de la nouvelle liste à partir de la orderedList
//continuer...
}

Toutes les idées de, une solution intelligente pour ça??? smart sens du code court et assez bien sur 🙂

Juste pour s'assurer que vous obtenez une réponse qui résout votre problème -- avez-vous vraiment besoin de maintenir que progressivement plus petites liste ordonnée (qui est potentiellement au moins un peu cher), ou avez-vous juste besoin de traiter les articles dans les groupes de correspondance code client/productid dans l'ordre? Le premier exige constamment la construction de nouvelles listes (ou retrait depuis le début, à la fois relativement cher), alors que ce dernier peut utiliser un plutôt simple opération de regroupement.
Je suis d'accord avec Jonathan commentaire. Il semble que vous avez une idée en tête, de comment résoudre le problème mais il est difficile de faire que cela se produise. Au lieu de nous parler de la hammer vous essayez de l'utiliser, parlez-nous de la maison, vous êtes des capacités; le marteau peut être le mauvais outil pour la plomberie. Pouvez-vous caractériser le problème par l'entreprise, les opérations que vous effectuez, et non pas par les détails de mise en œuvre de votre projet d'mutable-liste-fondé de la solution?

OriginalL'auteur | 2009-09-09