C# 用于以树方式排列的数据的自定义类
我正在尝试创建一个自定义类,该类以以下方式排列数据:-C# 用于以树方式排列的数据的自定义类,c#,C#,我正在尝试创建一个自定义类,该类以以下方式排列数据:- Departments Section 1 Person 1 Person 2 Section 2 ... etc 下面是我编写的代码,但它没有按照我的想法工作:- public class Sections { private List<Section> _Section =
Departments
Section 1
Person 1
Person 2
Section 2
... etc
下面是我编写的代码,但它没有按照我的想法工作:-
public class Sections
{
private List<Section> _Section = new List<Section>();
public List<Section> Section
{
get
{
return this._Section;
}
}
}
//Innehåller alla detailer om varje sektion
public class Section
{
public string Name { get; set; }
public int Capacity { get; set; }
public int MinimumStaffing { get; set; }
public int IdealStaffing { get; set; }
private List<Person> _Employee = new List<Person>();
public List<Person> Employee
{
get
{
return this._Employee;
}
set { }
}
}
//Innehåller alla info. om en enskild personal
public class Person
{
public string Name { get; set; }
public string Email { get; set; }
public int TelephoneNo { get; set; }
public int Pager { get; set; }
public int HomePhone { get; set; }
public string Title { get; set; }
}
问题在于else语句返回0计数,即它添加Name属性,但不添加员工列表
你知道如何克服这个吗
很抱歉打扰您,请提前感谢。类的
部分中Employee
属性的属性设置器是空的,因此当您这样调用\u Employee
时,您不会将任何内容分配给它Sektioner.Section.Add(new Section(){Name=sektionsnam,Employee=Sektion.Employee})
。在您的示例中,Employee
属性有以下代码:
public List<Person> Employee
{
get
{
return this._Employee;
}
set { }
}
然后,您可以将通话改为:
Sektioner.Section.Add(new Section(sektionsNamn, Sektion.Employee));
我发现它更简单,很少导致类似的错误。类部分中Employee
属性的属性设置器为空,因此当您像这样调用Sektioner.Section.Add(new Section()时,您不会将任何内容分配给\u Employee
{Name=sektionsnam,Employee=Sektion.Employee})
。在您的示例中,您为Employee
属性提供了以下代码:
public List<Person> Employee
{
get
{
return this._Employee;
}
set { }
}
然后,您可以将通话改为:
Sektioner.Section.Add(new Section(sektionsNamn, Sektion.Employee));
我发现这更简单,很少会导致类似的错误。非常感谢您的帮助。这正是我想要的。许多感谢者在测试之后,才发现Sektion.Employee即使在sektionsnam更改后仍不断添加人名。结果是5个部分包含相同数量的人,which不是我想要的。我的分区就像第一分区有4个人,而第二分区有6个人。如果我使用Sektion.Employee.Clear()我最后有5个部分,但我没有这些。你知道如何解决这个问题吗?很抱歉,我找到了一个解决方案,虽然我不知道这是否是最好的做法,但对我来说这听起来很合乎逻辑。我通过添加Sektion=new section()来实例化Sektion;在我将项目添加到Sektioner列表之后。@DreamNet您不介意,但我不能完全理解第一个问题。如果您需要什么,我会帮助您。非常感谢您的帮助。这正是我想要的。许多感谢者在测试后发现,sektions.Employee即使在sektionsnam被删除后仍继续添加人名更改。结果是5个部分包含相同的人数,这不是我想要的。我的部分类似于第1部分有4人,而第2部分有6人。如果我使用Sektion.Employee.Clear()我最后有5个部分,但我没有这些。你知道如何解决这个问题吗?很抱歉,我找到了一个解决方案,虽然我不知道这是否是最好的做法,但对我来说这听起来很合乎逻辑。我通过添加Sektion=new section()来实例化Sektion;在我将项目添加到Sektioner列表之后。@DreamNet您不介意,但我不能完全理解第一个问题。如果您需要什么,我会帮助您的。
Sektioner.Section.Add(new Section(sektionsNamn, Sektion.Employee));