Pergunta

É uma boa ideia reutilizar um conjunto de dados no .NET? O que quero dizer é ... eu tenho o seguinte código que loops a Gridview

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

O que estou fazendo no loop é criar uma nova instância do conjunto de dados. Não posso simplesmente ligar para ds.clear () e depois reutilizá -lo através do ds.readxml ()?

Foi útil?

Solução

A semântica é diferente: DataSet.Clear Exclui todos os dados (linhas), mas mantém o esquema (tabelas e relações).

Na sua amostra, parece que as tabelas estão sendo criadas a partir do método readxml (que pode ler o esquema e os dados).

DataSet.Clear provavelmente funcionaria enquanto você tiver certeza de que todos os documentos XML têm o mesmo esquema, mas usando New é mais robusto e expressa sua intenção melhor.

No entanto, se você estava lendo apenas dados, como na amostra a seguir, DataSet.Clear Pode ser uma escolha melhor, pois evita que você gera repetidamente o esquema.

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 

Outras dicas

Você pesa a reutilização com outras considerações de desempenho. De um modo geral, não faço otimizações como essa até que se tornem necessárias. E então somente se eu tiver números para provar que é necessário.

Você pode fazer isso, mas a criação de objetos é tão barata e você não tem risco de efeitos colaterais, não há motivo para não criar o novo objeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top