[英]Nested Classes C#
我有看起来像这样的数据:
系列1
图片1图片文件1
图片2图片文件2
图片3图片文件3
系列2
图片1图片文件1
图片2图片文件2
图片3图片文件3
图片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});
}
显然不包括所有代码。 我的结果是这样的:
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#,所以这对我来说是个新事物。 如果有更好的方法可以使用锯齿状的数组或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更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.