1

自動インクリメント列(「rowNum」と呼ばれる)をテーブルに追加していますが、うまく機能しています。その後、このコードを使用してデータテーブル行をソートします:

DataView dv = MyDataSet.Tables[0].DefaultView;
dv.Sort = "columnName DESC";

ここで、columnName は私の列の 1 つです (自動インクリメントではありません)。

さて、問題は次のとおりです。上位10行を取得したい場合、次のコードを使用します:

dv.RowFilter = "rowNum <= 10";

結果は私が望むものではありませんdv.Sort.rowNumをシャッフルすると(間違った順序になります)。

行を並べ替えた後、上位 10 行を取得するにはどうすればよいですか?

4

2 に答える 2

2

このようなものにはLINQが好きです。代わりに、System.Linq を使用して次のように記述します。

var rows = MyDataSet.Tables[0].AsEnumerable()
   .OrderByDescending(r => r["columnName"]) 
   .Take(10);

そして、「行」にバインドするだけです。

于 2009-09-13T12:20:55.660 に答える