I have this class
StudentsGroup
that also contain
HashSet<StudentsGroup>
public class StudentsGroup
{
public string Name;
public int StudentsCount;
public HashSet<StudentsGroup> SubGroups;
public StudentsGroup()
{
SubGroups = new HashSet<StudentsGroup>();
Name = "no_name";
}
public StudentsGroup(string name,int studens_count=0):this()
{
Name = name;
StudentsCount = studens_count;
}
}
how can I add element to
SubGroups
and its
SubGroups
in hierarchical way.
for example i can add item using this code
this.SubGroups.
ElementAt(0).SubGroups.
ElementAt(0).SubGroups.
ElementAt(0).SubGroups.
Add(new StudentsGroup("first year , section one , group 1 , subgroup 1"));
Now how can I implement function
AddGroup
that take element instance and parent index,and if parent not exist return error
public void AddGroup(StudentsGroup group, params int[] ParentIndex)
{
}
what I mean
compare these two case
StudentsGroup school = new StudentsGroup("school");
school.SubGroups.Add(
new StudentsGroup("year1"));
school.SubGroups.Add(
new StudentsGroup("year2"));
school.SubGroups.Add(
new StudentsGroup("year3"));
school.SubGroups.ElementAt(0).SubGroups.Add(
new StudentsGroup("class1"));
school.SubGroups.ElementAt(0).SubGroups.Add(
new StudentsGroup("class2"));
school.SubGroups.ElementAt(1).SubGroups.Add(
new StudentsGroup("class1"));
school.SubGroups.ElementAt(1).SubGroups.Add(
new StudentsGroup("class2"));
school.SubGroups.ElementAt(2).SubGroups.Add(
new StudentsGroup("class1"));
school.SubGroups.ElementAt(2).SubGroups.Add(
new StudentsGroup("class2"));
school.AddGroup(new StudentsGroup("year1"), 0);
school.AddGroup(new StudentsGroup("year2"), 0);
school.AddGroup(new StudentsGroup("year3"), 0);
school.AddGroup(new StudentsGroup("class1"), 0,0);
school.AddGroup(new StudentsGroup("class2"), 0, 0);
school.AddGroup(new StudentsGroup("class1"), 0, 1);
school.AddGroup(new StudentsGroup("class2"), 0, 1);
school.AddGroup(new StudentsGroup("class1"), 0, 2);
school.AddGroup(new StudentsGroup("class2"), 0, 2);
//and how about when we have 10 level of subGroups , dynamic add using method will facilitate code writing