嵌套类C#

时间:2013-06-23 02:48:57

标签: c# nested

我的数据如下:

系列1
Image1 ImageFile1
Image2 ImageFile2
Image3 ImageFile3

系列2
Image1 ImageFile1
Image2 ImageFile2
Image3 ImageFile3
Image4 ImageFile4

系列3
Image1 ImageFile1

我试图使用Lists和这个类来存储它:

  private List<SeriesClass> dcm = new List<SeriesClass>();

   public class SeriesClass
    {

      public int SeriesId { get; set; }
      public int Value1 { get; set; }
      public string Value2 { get; set; }

    }
  Loop that populates the data {
   dcm.Add(new SeriesClass { Value1 = value1, Value2 = value2, SeriesId = seriesnum});
}

显然不包括所有代码。我的结果是这样的:

Series1 Image1 ImageFile1
Series1 Image2 ImageFile2
Series1 Image3 ImageFile3

Series2 Image1 ImageFile1
Series2 Image2 ImageFile2
Series2 Image3 ImageFile3
Series2 Image4 ImageFile4

Series3 Image1 ImageFile1

我想知道是否有一种很好的方法来嵌套类,以便SeriesID变得像包含其余数据的关键字段。就像我可以在特定系列下拉出一个图像列表。

我试着这样做:

public class SeriesClass
        {

      public int SeriesId { get; set; }

public class ImageClass{
      public int Value1 { get; set; }
      public string Value2 { get; set; }
          }

         }
  Loop that populates the data {
      dcm.Add(new SeriesClass { SeriesClass.ImageClass.Value1 = value1, SeriesClass.ImageClass. Value2 = value2, SeriesClass.SeriesId = seriesnum});
}

但List.Add的东西不允许..任何帮助将不胜感激。我昨天刚开始使用C#,所以这对我来说有点新鲜。如果有一个更好的方法来做这个与锯齿状数组或字典或其他我也会这样做。

谢谢:)

1 个答案:

答案 0 :(得分:0)

我相信你需要使用一个词典。 Dictionary可以将id用作键,将列表用作值。

   private Dictionary<Integer,List<SeriesClass>> dict= new Dictionary<Integer,List<SeriesClass>>();

   public class SeriesClass
    {

      public int Value1 { get; set; }
      public string Value2 { get; set; }

    }
  Loop that populates the data {
   if ( dict.containsKey(seriesNum) ){
       dict[seriesNum].Add(new SeriesClass { Value1 = value1, Value2 = value2});
   }else{
      var list = new List<SeriesClass>();
      list.Add(new SeriesClass { Value1 = value1, Value2 = value2} );
      dcm.Add(seriesNum, list);
   }
}

我没有对代码进行测试,因此可能存在语法错误,但我希望您能获得要点。 TryGet可能更好,而不是使用containsKey。