2011-05-16 4 views
0

두 클래스가 있고 컬렉션이 포함 된 컬렉션을 만들고 싶습니다. 따라서 나는 ..컬렉션 내에서 일반 컬렉션 만들기

public class GenericReportInfo 
{ 
    public string ReportName { get; set; } 
    public string ReportFileName { get; set; } 
    public Paramaters parameterList { get; set; } 
} 

public class Paramaters 
{ 
    public List<string> parameter { get; set; } 

} 

이 내가 단순히 즉

public class GenericReportsInfo 
{ 
    public List<GenericReportInfo> CreateAndInitialize() 
    { 
     List<GenericReportInfo> reportsList = new List<GenericReportInfo>(); 
     GenericReportInfo info = new GenericReportInfo() 
     { "Agent", "Agent", new paramter() {"StateId"} }; 

     return reportsList; 
    } 
} 

그냥이 얻을 수있는 올바른 방법을 알고 싶습니다 수집 인라인에 추가 할 수있는 지점에 도착합니다.

감사

마크

답변

2

당신은 거의 다 :

List<GenericReportInfo> reportsList = new List<GenericReportInfo>(); 
GenericReportInfo info = new GenericReportInfo() 
{ 
    ReportName = "Agent", 
    ReportFileName = "Agent", 
    parameterList = new Paramaters() { parameter = new List<string> { "StateId" } } 
}; 

는 비록 몇 가지 주석을 추가하고 싶습니다 :

  • 그것은 파람 해야한다 매개 변수가 아닌 매개 변수 ters.
  • 다른 공개 속성과 마찬가지로 P arameterList도 대문자로 사용합니다.
  • 앞으로 매개 변수 클래스에 더 많은 필드가 포함될 것으로 예상하지 않는 한이 클래스를 추가로 가질 가치가 있는지 확실하지 않습니다 (List<String> 캡슐화).
1

하인츠의 대답이 맞습니다. 그러나 완전성을 위해 표준 필드는 물론 매개 변수 유형의 매개 변수 배열을 사용하는 생성자를 만들 수도 있습니다. 클래스가 작 으면 더 명확한 구문이 될 수 있습니다.

1

대신 문자열 목록을 가진 당신은 ...

public class GenericReportInfo 
{ 
    public string ReportName { get; set; } 
    public string ReportFileName { get; set; } 
    public IList<Parameter> Parameters { get; set; } 

    public GenericReportInfo(
     string reportName, 
     string reportFileName, 
     IEnumerable<Parameter> parameters) 
    { 
     ReportName = reportName; 
     ReportFileName = reportFileName; 
     Parameters = new List<Parameter>(parameters); 
    } 
} 

public class Parameter 
{ 
    public string Name { get; set; } 
} 

는 다음 초기화하는 ... 대신 매개 변수의 목록을 가질 수

GenericReportInfo info = new GenericReportInfo() 
{ 
    ReportName = "Agent", 
    ReportFileName = "Agent", 
    Parameters = new List<Parameter>() { new Parameter(){ Name = "StateId" } } 
};