Nested Classes C#

本文关键字:Classes Nested | 更新日期: 2023-09-27 18:19:28

我有这样的数据:

系列1
图像1图像文件1
图像2图像文件2
图像3图像文件3

系列2
图像1图像文件1
图像2图像文件2
图像3图像文件3
图像4图像文件4

系列3
图像1图像文件1

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

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

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

序列1图像1图像文件1
序列1图像2图像文件2
序列1图像3图像文件3

序列2图像1图像文件1
序列2图像2图像文件2
序列2图像3图像文件3
序列2图像4图像文件4

系列3图像1图像文件1

我想知道是否有一种好的方法来嵌套类,使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#,所以这对我来说有点新鲜。如果有更好的方法可以用锯齿状数组或字典之类的东西来实现这一点,我也会支持的。

感谢:)

Nested Classes C#

我认为您需要使用Dictionary。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更好。