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