2010-06-22 10 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; 

그럼 목록에 새 인스턴스를 추가하고 싶습니다 "열 "유형을 지정합니다.

목록의 유형을 정의 할 때

나는 "제네릭 형식 Picker.DBColumn<dataTp>을 사용하여 오류 (1) (56) (9) FCAgieStratPicker Frm.cs 1 유형의 인수가 필요합니다"먹을수록 생각이 할 수있는 syntaxs이있을 것 같지 않습니다 내가 좋아하는 것 .

이것도 가능합니까? 아니면이 경우 기본 클래스 객체를 사용해야합니까?

메모리에 표시하고자하는 데이터를 처리하는 더 좋은 방법이 있을지도 모릅니다.

답변

1

당신이 궁극적으로 달성하고자하는 것은 이미 System.Data.DataTable 클래스에서 제공 한 것 같습니다.

추가 열 :

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

추가 행 :

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

OK 사용 방법에 대해 읽어 볼 필요가 있습니다 :-) –

+0

사실 내 요구에 매우 기대됩니다. 감사! –

0

유형이 일반적입니다. 해당 유형의 목록을 만들려면 클래스의 유형도 지정해야합니다.

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

예하지만 난 그 시점에서하고 싶지 않아요. 객체에 추가 할 때 다른 유형을 정의하려고합니다. 내가 실제로 여기에 내 솔루션을 찾은 것 같아요 : http://stackoverflow.com/questions/754341/adding-generic-object-to-generic-list-in-c 가능성이 인터페이스를 만들 수 있습니다. –

+0

@user -하지만이 경우에는 인터페이스 유형을 제공해야합니다. 이미 IComparable로 제한하고 있으므로 목록에서 검색 할 때 다른 메서드에 대한 액세스가 필요하지 않으면이 메서드를 사용할 수 있습니다. – tvanfosson

+0

네, IComparable에 제약을가했습니다. 그래서 그것을 사용할 수있을 것 같아요. 나는 'chiccodoro'가 나에게 원래의 문제를 해결하기위한 아이디어를 실제로 주었다고 생각한다. 그리고 당신은 그 질문에 정답을 주었다. (내가 받아 들인 답을 누구에게 제공해야합니까? 나는 새로운 것입니다 ...) –