2010-06-22 33 views
1

我想創建一個通用列表的對象列表。通用列表的列表

所以我有什麼是對象:

public class agieDBColumn<dataTp> where dataTp:IComparable{ 
private string _header; 
private string _longHeaderName; 
private List<dataTp> _data; 

public string header { 
    get { return _header; } 
    set { _header = value; } 
} 

public string longHeaderName { 
    get { return _longHeaderName; } 
    set { _longHeaderName = value; } 
} 

public List<dataTp> data { 
    get { return _data; } 
    set { _data = value; } 
} 

} 

這是我怎麼想使用它:

List<DBColumn> columns; 

然後,我想新的實例添加到列表中的「列「指定類型。

似乎沒有成爲一個syntaxs,雖然允許這樣做,因爲我得到「錯誤1使用通用型Picker.DBColumn<dataTp>需要1類型參數Frm.cs 56 9 FCAgieStratPicker 」試圖定義列表的類型時,我想。

這甚至可能嗎?或者我需要在這種情況下使用基類對象?

也許有更好的方法來處理我想在內存中表示的數據。

回答

1

看來你最終想實現的目標已經由System.Data.DataTable類提供。

添加列:

DataTable dataTable = new DataTable(); 
DataColumn column = dataTable.Columns.Add(header, type); 
column.Caption = longHeaderName; 

添加行:

dataTable.Rows.Add(someIntValue, someStringValue, ...) 
+0

好的,我需要閱讀如何使用:-) – 2010-06-22 14:58:07

+0

這看起來非常有希望滿足我的需求。謝謝! – 2010-06-22 15:03:09

0

您的類型是通用的。如果你想創建一個這種類型的列表,你還需要指定你的類的類型。

List<agieDBColumn<int>> columns = ... 
+0

是的,但是我不想在這一點上。我想在添加到列表中時爲對象定義不同的類型。我想我現在可能已經在這裏實際上找到了我的解決方案:http://stackoverflow.com/questions/754341/adding-generic-object-to-generic-list-in-c 我可能必須創建一個接口。 – 2010-06-22 14:50:19

+0

@user - 但您仍然需要提供類型,在這種情況下是接口類型。請注意,您已經將它限制爲IComparable,因此您可以使用它,除非您在從列表中檢索它時需要訪問其他方法。 – tvanfosson 2010-06-22 15:06:03

+0

是的,我將它限制爲IComparable,所以我想我可以使用它。我認爲'chiccodoro'實際上給了我解決原始問題的想法,但你給出了正確的答案! (那麼我應該給誰接受答案?我在這裏是新的......) – 2010-06-22 15:19:39