2011-05-16 101 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" } } 
}; 

我想提出一些看法,但:

  • 它应该是帕拉姆e ters,而不是param a ters。
  • 我会大写P arameterList(与其他公共属性一样)。
  • 除非您希望将来的Parameters类包含更多的字段,否则我不确定是否值得为此添加额外的类(仅用于封装List<String>)。
1

Heinzi的回答是正确的。但是为了完整性,您还可以创建一个构造函数,该构造函数接受标准字段以及参数类型的参数数组。如果你的课堂很小,它可以是一个更清晰的语法。

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