0

ここでいくつかのLinqToExcelフィルタリングに苦労しています...

List<string> columnsToFilterは9つの文字列List<Row>Row含む

IEnumerable<string> ColumnNames
Cell this[string columnName]

つまりList<Row>、30 行あり、それぞれに 12 の ColumnNames があります。List<Row>今、私はそれを使ってフィルタリングしたいList<string> columnsToFilterので、List<Row>30 行と9つの列名になります。

列名をクエリすることで、 1 つの列のデータを選択できます。

var result = content.Select(m => m["Column1"]).ToList();

今、文字列のリストに基づいてデータをフィルタリングしたいと思いますList<string> columnsToFilter。それを達成するための最良の方法は何ですか?

4

3 に答える 3

1

選択する 9 つの列に対応するプロパティ名を持つ MyObject というオブジェクトを定義します。

var excel = new ExcelQueryFactory("excelFileName");
var myObjects = from c in excel.Worksheet<MyObject>()
                       select c;

ビンゴ。9 つの列をプロパティとして 30 個のオブジェクトを反復処理できるようになりました。すべての列が表示されていなくても、LinqToExcel はオブジェクトを喜んで塗りつぶすことに注意してください。

Dictionary() オブジェクトである "row" と呼ばれる MyObject の一部としてプロパティまたはメソッドを使用することもできるため、myObject.row["ColumnName"] と言って値を参照することができます。値を取得する ColumnName。個人的には、辞書のたたみ込みを使用するよりも、実際のプロパティを扱いたいと思っています。

于 2013-10-08T16:36:42.990 に答える