2017-06-11 11 views
0

私のアプリはアイテムリストを作成し、Excelファイルから必要なデータ(例:価格、顧客アイテムコード)を取得します。C#Excelリーディング最適化

  • この参照ファイルには650行と7つの列があります。
  • アプリケーションは、1回の実行時間で10〜12項目の行を読み取ります。

広告申込情報を広告申込情報ごとに読むことは賢明でしょうか? または、まず、Excelのすべての広告申込情報をリスト/アレイに読み込んでそこから検索する必要がありますか? ありがとうございました

答えて

1

データの出所に関係なく、データを最もよく表すクラスを設計することから始めてください。 Excel、SQLなどがないとふります。

データが常に小さい(650行)場合は、作成するデータ構造(独自のクラス)にすべてを読み込みます。あなたは

var itemsIWant = allMyData.Where(item => item.Value == "something"); 

ような理由は、それがストレージからの問合せ(個々の項目を選択する)を分離することができますということで、あなたが好きなデータのものを照会することができます(データはから来ているものは何でもファイルまたはソース。)あなたの場合Excelを他のコードに置き換える必要はありません。 1行ずつ読むと、条件に基づいて項目を選択するコードがExcel読み取りコードと混ざり合います。

物事を分けておくことで、コードの一部をより簡単に個別にテストすることができます。 1つのコンポーネントがExcelの内容を正しく読み取ってデータに変換するかどうかを確認できます。あなたは、他のコンポーネントが正しく必要なデータを返すために、クエリを実行していることを確認することができます


を最適化に関して(およびそのデータがどこから来たのか、それは気にしません。) - あなたが開くことになるだろうディスクからファイルを読み込み、すべての行を読み込む必要があります。それがすべてのオーバーヘッドです。一度にすべてを読んでから、一度に1つずつ各行を照会したりチェックしたりすることは重要な要素ではありません。