J'ai un backend .Net qui me permet d'interroger des éléments via l'API client correspondante par leurs propriétés .Id et .Revision et mieux encore, en vrac en fournissant une liste de ces combos.Le moyen le plus efficace de filtrer une liste qui contient (presque) des doublons dans .Net
Cependant, chaque .id ne peut apparaître une fois par requête, mais l'entrée ne contiennent certaines entrées avec les mêmes Ids plusieurs fois, mais avec des valeurs de .Revision différentes, par exemple:
.Id | .Revision
1 | 1
1 | 2
2 | 1 (unique .Id)
3 | 3
3 | 5
4 | 2 (unique .Id)
5 | 1 (unique .Id)
. Donc, les entrées avec .Id 1 et 3 posent des problèmes et je me demande quel serait le moyen le plus efficace (= le moins de requêtes) pour récupérer tous les combos. Dans le pire des cas, l'exécution la plus simple consisterait à récupérer tous les combos un par un en ignorant les mécanismes de bulk/batchs potentiels, mais même si cela retourne logiquement le bon ensemble d'éléments, c'est évidemment lent.
Comment puis-je obtenir le plus grand ensemble de combinaisons .Id/.Revision uniques et combiner les multiples .Id-uns restants ensemble en un minimum de lots ... de manière efficace?
Quelle est la technologie sous-jacente qui est LINQ mappage? –
@CapTec il n'y a pas de fournisseur Linq en place pour interroger le backend, les objets antérieurs à la requête sont purement en mémoire et d'un type personnalisé et fondamentalement l'API client prend uniquement int [] pour les valeurs .Id et .Revision . Donc, le lot de ces lots dans le moins de lots se passe en mémoire, localement. –
Vous pouvez produire un arbre à partir des identifiants uniques et sous chaque branche avoir des noeuds pour chaque révision. De cette façon, vous pouvez interroger votre API au fur et à mesure des besoins pour chaque nœud. (Pensez à diffuser votre requête d'une manière de parler). Je peux mal comprendre votre question si. J'ai fait similaire avec XML afin de garder son empreinte mémoire faible dans la mémoire en cours d'exécution, le même principal peut travailler pour interroger une API. –