我有一个单元格列表,每个列表都有一个站点列表。
有时我需要获取一个电台的父细胞。
我如何实现此层次结构?
答案 0 :(得分:5)
如果我是你,我会创建两个类:
public class Cell {
...
public List<Station> Stations {
get {...}
}
protected Station AddStation() {
Station result = new Station(this);
Stations.Add(result);
return result;
}
}
public class Station {
public Station(Cell cell) {
this.cell = cell;
}
Cell cell;
public Cell Cell {get {return cell;}}
}
使用此结构,您始终可以从Station对象访问Cell。
答案 1 :(得分:2)
如果您需要从Station
导航回Cell
,则需要Station
对象拥有ParentCell
(或Cell
)属性设置为其父级单元格。
答案 2 :(得分:1)
如果您想要一个不同的答案,有一种方法可以在没有实际构成的情况下实现层次结构。创建一个工作站对象,其中每个方法都接受Cell作为参数,例如:
public void DoStuff(whatever x, Cell parent)
{
}
将在其父单元格的上下文中评估每个工作站,但您可以使用相同的Station
对象来表示层次结构中的不同工作站。
提供该解决方案是为了多样化。在大多数情况下,如上所述,要走的是构图。另外,我认为你应该使用Cell本身,而不是ID。