C# 如何从用户定义的类创建列表
大家好,我是Stackoverflow的新手,所以请忽略错误。我有不同的用户定义类,这些类有很多属性。我想创建一个使用这些类的列表,需要使用系统定义数据类型而不是用户定义类。。。 下面是您可以更好地理解的代码 这些是课程C# 如何从用户定义的类创建列表,c#,C#,大家好,我是Stackoverflow的新手,所以请忽略错误。我有不同的用户定义类,这些类有很多属性。我想创建一个使用这些类的列表,需要使用系统定义数据类型而不是用户定义类。。。 下面是您可以更好地理解的代码 这些是课程 public class Slide { public string Name { get; set; } public bool IsChecked { get; set; } } //......... public class SubSection {
public class Slide
{
public string Name { get; set; }
public bool IsChecked { get; set; }
}
//.........
public class SubSection
{
public SubSection()
{
this.Composition = new ObservableCollection<object>();
}
public string Name { get; set; }
public bool IsChecked { get; set; }
public ObservableCollection<object> Composition { get; set; }
}
//................
public class Section
{
public Section()
{
this.SubSections = new List<SubSection>();
}
public string Name { get; set; }
public bool IsChecked { get; set; }
public List<SubSection> SubSections { get; set; }
}
公开课幻灯片
{
公共字符串名称{get;set;}
已检查公共布尔值{get;set;}
}
//.........
公共类分部
{
公共部第()款
{
this.Composition=新的ObservableCollection();
}
公共字符串名称{get;set;}
已检查公共布尔值{get;set;}
公共可观测集合组合{get;set;}
}
//................
公共课组
{
公共事务组()
{
this.SubSections=新列表();
}
公共字符串名称{get;set;}
已检查公共布尔值{get;set;}
公共列表子节{get;set;}
}
列表中的每个节点都应该有节、子节和幻灯片,首先创建一个包含所有要包含的数据的模型类,然后可以创建该类的列表
public class CustomClass
{
public Section{get;set;}
public SubSection{get;set;}
public Slide{get;set;}
}
var customClasses = new List<CustomClass>();
公共类CustomClass
{
公共部分{get;set;}
公共子节{get;set;}
公共幻灯片{get;set;}
}
var customClasses=新列表();
我假设您需要一个列表,列表中的每个元素都包含您在问题中列出的每个类中的一个。您可以使用以下列表:
var mylist=new List();
添加(Tuple.Create(new Section(),new SubSection(),new Slide());
添加(Tuple.Create(new Section(),new SubSection(),new Slide());
添加(Tuple.Create(new Section(),new SubSection(),new Slide());
Tuples在.NET 4.5中被引入,只要你至少4.5,这对你来说是有效的。
< P>我同意Josh Smeaton对元组的回答,但是为了好玩,我想知道你是否可以把Anonymous Types看作一个系统定义的类型……?var myList = new[]
{
new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()},
new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()}
}.ToList();
“需要使用系统定义数据类型而不是用户定义类”…不确定你的意思。什么是用户定义的类,什么是系统数据类型?这个代码示例并不清楚你想做什么,也许你可以提供更多的信息?还有,你使用的是哪个版本的.NET/C?元组实际上有利于具体的类吗?我以前使用过它们类似的东西,但它不是最可读/可维护的代码。@Arkiliknam我通常会创建自己的类,除非它是内部的。不过OP提到了系统定义的类型,所以我选择了标准库中的一些类型,猜想OP就是这个意思。啊,我错过了。好主意:)@Jwosty我在python中也经常使用元组,很适合任意不可变的集合。@Arkiliknam如果C#有一个很好的元组语法,它可能会被使用morehah,我在我的答案中添加了匿名类型作为第二个选项,但删除了它们。只在局部范围内有用,但显示它们仍然是一个好主意。
var myList = new[]
{
new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()},
new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()}
}.ToList();