Профоргу иметь свой список событий нет необходимости. Если события закреплены за профсоюзом, то и профорг должен непосредственно работать с этим списком, а не дублировать свой. Чем меньше списков вы создадите, тем проще потом будет в них ориентироваться. Здесь достаточно одного events в Union.
class ProfOrg
{
private Union _union;
public ProfOrg(Union union)
{
_union = union;
}
public void AddEvent(UnionEvent unionEvent)
{
_union.Events.Add(unionEvent);
}
}
class Union
{
private ProfOrg _profOrg;
private List<UnionEvent> _events;
public List<UnionEvent> Events { get { return _events; } }
public ProfOrg ProfOrg { get{ return _profOrg; }
public Union()
{
events = new List<UnionEvent>();
profOrg = new ProfOrg(this);
}
}