2013-08-01 53 views
1

我期待構建一個用於從數據表內插數據的方法,並希望知道如何以最有效的方式執行此操作。我有這樣的事情開始:數據表C#中的線性內插 - 確定數據類型

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 <>擴展名列表。加。

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

有誰知道另一種方式來使用:

我在row.Field <>使用類型/類型代碼變量(?這是甚至可能)按這樣的事情沒有運氣類型檢查的結果?

另外,有沒有更好的方式插入表本身沒有列表?

回答

0

真的,排序你只需要實現IComparable的類。

那麼,如果使用Field<IComparable>而不是Field<double>? A double實現了IComparable。因此,短,int等

+0

好吧,給這個試試吧。我需要創建一個全新的課程,還是僅使用'IComparable'來代替'double'? – user878796

+0

double,int,short等...他們都*是一個IComparable。但是我剛剛意識到我的建議有錯誤。你現在有一個你無法獲得價值的東西,但只是比較其中的兩個。所以你不能,比如稍後打印清單。 – hometoast