J'écris une classe pour représenter une ligne à partir d'une requête SQL. Je veux que les données de champ soient accessibles via la propriété indexer de la classe. C'est assez simple si je charge les données dans une liste interne d'objets. J'ai déjà essayé cela et je ne suis pas content de la boxe pour les primitifs. La boxe augmente l'exigence de mémoire de 20%. Je voudrais stocker les primitives en tant que primitives dans la classe. La classe DataTable stocke les primitives en créant des tableaux pour chaque colonne dans le schéma renvoyé par IDataReader. J'ai implémenté une classe de cette façon mais je préférerais que les données soient stockées avec l'objet row plutôt qu'avec une colonne référencée en interne par la ligne.Comment éviter le débockage de la mémoire de boxe lors de la lecture de lignes sql arbitraires
Des idées pour y parvenir?
Pourquoi devrait-il s'agir d'un type de structure et non d'une classe? – Amnon
+1 C'est une bonne idée mais comme vous le dites, je ne sais pas si je suis prêt à y aller pour le moment. Je vais d'abord essayer l'approche générique et si elle ne la coupe pas, j'essaierai de créer une structure interne dynamiquement. Merci – Steve
@Reed - Je n'ai pas attrapé la boxe de la classe générique elle-même, vous avez raison. Cela ne sauverait pas la mémoire. – Steve