1

私は現在、Webアプリケーションに取り組んでいます。DataGridView コントロールや DropDownList コントロールなどの DataSource として使用すると、どちらのパフォーマンスが優れているのか疑問に思っていました。

DataReader から取得しない限り、DataTable を作成するのは難しいと思いますが、DataReader のような DataAccess クラスの使用を抽象化する ORM レイヤーがあり、ORM ライブラリは通常、配列リストを返します。この場合、DataTable の作成は非常に面倒です。また、DataSource が ArrayList 内の DataTextField と DataValueField の選択をどのように処理するのか疑問に思っています...リフレクション経由ですか? もしそうなら、リフレクションを使用するとパフォーマンスが低下しますか? しかし、DataTable の場合、完全なメタデータが含まれているため、高速になると思います。

どう思いますか?

4

2 に答える 2

3

おそらく、どちらのパフォーマンスの違いもごくわずかであることがわかります。時期尚早の最適化に焦点を当てるのではなく、保守と理解が最も簡単なオプションに焦点を当てる必要があります。

于 2009-09-09T00:45:26.407 に答える
1

List (ArrayList の代わりに使用していただきたいと思います) は、DataTable より軽量な構造です。ORM が ArrayList を返す場合、それを DataTable に変換し、その DataTable をコントロールの DataSource として使用することはあまり意味がありません。これは余分な作業です。一般に、DataTable (DataAdapter によって埋められる)を使用する、ORM を使用しますが、両方を一緒に使用することはありません。DataTable は ArrayList よりも「重い」ですが、その違いがそれほど重要であるとは思えません。

グリッドまたはその他のコントロールの DataSource が DataTableまたはArrayListのいずれかに Reflection を使用するとは思いません。

于 2009-09-09T01:07:36.213 に答える