数据表C#中的线性插值 - 确定数据类型

时间:2013-08-01 16:57:03

标签: c# datatable linear-interpolation

我希望构建一种从数据表中插入数据的方法,并希望了解最有效的方法。我有这样的事情开始了:

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"));
        }

在将数据拉入多个列表后,我使用了一种线性插值方法,该方法适用于当前正在工作的排序列表,但前提是我事先知道数据类型(目前使用的是双精度数据)。

我被困在这里:我希望这种方法能够从数据表预先(从列?)确定数据类型并在row.Field&lt;&gt; list.Add。

的扩展名

我没有运气在row.Field&lt;&gt;中使用类型/类型代码变量(这是否可能?)通过类似的东西:

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

有没有人知道使用类型检查结果的另一种方式?

另外,有没有更好的方法在没有列表的情况下对表本身进行插值?

1 个答案:

答案 0 :(得分:0)

真的,要排序你只需要实现IComparable的类。

那么,如果您使用Field<double>而不是Field<IComparable>,那该怎么办? double实现了IComparable。 short,int等也是如此。

相关问题