Не разбирам точно какво искаш да постигнеш.
Имаш някакви обекти тип компютър и обекти тип компонент. Те са независими едни от други, т.е. един компонент може да го добавиш към кой да е компютър. Това обаче няма как да стане автоматично при инстанциирането на компонента. Трябва изрично да кажеш "създавам компонент с тия параметри" и след това "този компонент е част от този компютър". Ако инстанциираш компонент, трябва ти да кажеш към кой компютър да го добавиш (ако искаш въобще да го добавиш, може да има случаи, в които не искаш).
Примерно (може да се подават и някакви данни на конструкторите, за простота приемам, че има празни такива):
Computer pc = new Computer();
Component component = new Component();
pc.AddComponent(component);
Може и по-кратко ако нямаш необходимост да пазиш референция към компонента:
pc.AddComponent(new Component());
Двете неща са аналогични, създаваш компонент и го добавяш към компютъра; разликата е, че във втория вариант нямаш променлива, която да пази компонента.
Няма обаче как да създадеш компонент и магически той сам да се добави някъде. Или ако достигнеш такъв вариант - най-вероятно правиш нещо грешно и нарушаваш поне един принцип на ООП.
Добавка: Може при инстанцииране на компютъра ръчно да му напълниш списъка с т.нар. object initializer, например:
Computer pc = new Computer { Components = new List<Component> {new Component(), new Component() ... }};
Това обаче е малко в разрез с начина, по който си задал въпроса си, защото тук при инстанцирането на компютър се създават и компонентите му, а не впоследствие на създаден компютър да се добавя новосъздаден компонент.
Да разбрах, просто му казах pc.Components = new List<Component>(); и след това ги добавих.