Comment soustraire une liste énorme de l'autre efficacement en C#

J'ai une très longue liste d'Id (entiers) qui représente tous les éléments qui sont actuellement dans ma base de données:

var idList = GetAllIds();

J'ai aussi un autre énorme liste générique avec les éléments à ajouter à la base de données:

List<T> itemsToAdd;

Maintenant, je voudrais supprimer tous les éléments de la liste générique dont l'Id est déjà dans le idList.
Actuellement idList est un simple tableau et je soustrais les listes comme ceci:

itemsToAdd.RemoveAll(e => idList.Contains(e.Id));

Je suis assez sûr qu'elle pourrait être beaucoup plus rapide, de sorte que les types de données dois-je utiliser pour les deux collections et quelle est la plus efficace et pratique pour soustraire eux?

Merci!

  • Je voudrais savoir comment diffuser/énumérer ce ainsi, si possible...
InformationsquelleAutor Shackles | 2011-02-23