2011-07-21 6 views
0

データテーブルを返す関数があります。データビューを使用してデータテーブルをソートし、ソートされたデータビューから上位10行を返すコードを追加しました。C#を使用してTake()を使用してデータテーブルを返す方法

DataView dvDt = dtData.DefaultView; 
dvDt.Sort = "Value DESC" 
var vlist = dvDt.ToTable().AsEnumerable().Take(10); 

戻り値アイテムとしてデータテーブルを取得する方法を知りたいのですが。どのように "vlist"をdatatableに変換するのですか?

私はC#と.net 3.5フレームワークを使用します。

+0

あなたがデータテーブルをしたいのはなぜ?あなたはテーブルを必要とするそれで何をしますか?私が知る限り、これを行う自動化された方法はありません:右の列を使用して独自のテーブルを作成し、各行を手動で転送する必要があります(.NewRow()/。AddRow())を使用しますが、これを行う必要はありません。vlistをそのままどこでもデータソースとして割り当てることができます。 –

+0

Guys、私は呼び出し元のプログラムにデータテーブルを返す既存の関数を開発していました。私は、渡されたデータセットから上位10のレコードをソートして取得するコードを追加しました。 –

答えて

3

あなたはDataTableExtensions.CopyToDataTableを使用することができます。

var table = vlist.CopyToDataTable(); 
+0

これは 'vlist'が' IEnumerable T:DataRow'の場合にのみ有効です。 –

+0

@Chris:このような状況では、それが構築されているとすれば、それは当てはまりませんか? –

+0

@ジョン:そうです。私の心の後ろに、私はあなたが正しいことになることを知っていました。 –

0

新しいDataTableのインスタンスを作成し、適切な列を追加してから、vlistを反復し、NewRowメソッドを使用してデータテーブルを作成する必要があります。これを行うための組み込みメソッドはありません。

関連する問題