Question

Est-ce une bonne idée de réutiliser un ensemble de données en .net? Ce que je veux dire est ... J'ai le code suivant qui boucle un gridview

For Each row in GridView
  ds = New DataSet
  ds.ReadXML(GetStream(row.Field))
  ... export the dataset
Next

Ce que je fais dans la boucle est la création d'une nouvelle instance de la DataSet. Je ne peux pas simplement appeler ds.Clear (), puis le réutiliser par la ds.ReadXML ()?

Était-ce utile?

La solution

La sémantique est différente: DataSet.Clear supprime toutes les données (lignes), mais conserve le schéma (tables et relations).

Dans votre exemple, il semble que les tables sont créées à partir de la méthode ReadXml (qui peut lire le schéma ainsi que des données).

DataSet.Clear serait probablement travailler aussi longtemps que vous êtes certain que tous les documents Xml ont le même schéma, mais en utilisant New est plus robuste et mieux EXPRIME votre intention.

Toutefois, si vous lisiez des données uniquement, comme dans l'exemple suivant, DataSet.Clear pourrait être un meilleur choix car il vous évite de générer à plusieurs reprises le schéma.

ds = New DataSet 
... code to create the schema (Tables, Columns, Relations)

For Each row in GridView 
  ds.ReadXML(GetStream(row.Field), XmlReadMode.IgnoreSchema) 
  ... export the dataset 
  ds.Clear
Next 

Autres conseils

Vous pesez réutiliser avec d'autres considérations de performance. D'une manière générale, je ne le fais pas comme ça Optimisations jusqu'à ce qu'ils deviennent nécessaires. Et seulement si je nombre pour prouver que cela est nécessaire.

Vous pourriez être en mesure de le faire, mais la création d'objets est si bon marché et vous avez pas de risque d'effets secondaires, il n'y a aucune raison de ne pas créer le nouvel objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top