1

データテーブルからデータを補間する方法を構築しようとしていますが、これを行う最も効率的な方法についての提案を知りたいです。私はこのようなものを始めました:

List<double> freqlist, Rlist, Llist, Qlist;

foreach (DataRow row in tdt.Table.Rows) //tdt contains my datatable
        {
            freqlist.Add(row.Field<double>("FREQ"));
            Rlist.Add(row.Field<double>("R"));
            Llist.Add(row.Field<double>("L"));
            Qlist.Add(row.Field<double>("Q"));
        }

データをいくつかのリストにプルした後、ソートされたリストで機能する線形補間法を使用します。これは現在機能していますが、事前にデータ型を知っている場合に限ります (現在は double を使用しています)。

私はここで立ち往生しています:このメソッドが事前にデータテーブルから (列から?) データ型を決定し、それを list.Add の row.Field<> 拡張で使用できるようにしたいと考えています。

次のようなもので、row.Field<> で type / typecode 変数を使用することはできませんでした (これは可能ですか?)。

System.Type tc = System.Type.GetType(tdt.Table.Columns["R"].DataType.ToString());
    freqlist.Add(row.Field <tc> ("FREQ"));

型チェックの結果を使用する別の方法を知っている人はいますか?

また、リストなしでテーブル自体を補間するより良い方法はありますか?

4

1 に答える 1

0

本当に、ソートするには、実装するクラスが必要ですIComparable

では、 の代わりにField<double>を使用した場合はどうなるField<IComparable>でしょうか。Adoubleは IComparable を実装します。short、int なども同様です。

于 2013-08-01T17:01:04.187 に答える