Estoy frente a una situación en la que tengo objetos dependientes y me gustaría poder eliminar un objeto y todas las referencias a él.Eliminación de elementos de las listas y todas las referencias a ellos
Digamos que tengo una estructura de objeto como el siguiente, con un tipo de rama que hace referencia a dos nodos.
public class Node
{
// Has Some Data!
}
public class Branch
{
// Contains references to Nodes
public Node NodeA
public Node NodeB
}
public class Graph
{
public List<Node> Nodes;
public List<Branch> Branches;
}
Si quito un nodo de la lista de nodos en la clase Graph, todavía es posible que uno o más objetos Branch todavía contiene una referencia al nodo eliminado, por lo que conserva en la memoria, mientras que en realidad lo que yo sería bastante útil establecer cualquier referencia al nódulo eliminado para anular y dejar que la recolección de basura inicie.
Aparte de enumerar a través de cada sucursal y revisar cada referencia de nodo secuencialmente, ¿hay alguna idea inteligente sobre cómo eliminar referencias al nodo en cada instancia de rama Y de hecho cualquier otra clase que haga referencia al nodo eliminado?
¿Está almacenando datos en la Sucursal? Si no, puedes deshacerte de esa clase por completo y simplemente almacenar nodos relacionados en la clase Node. –
Hola, sí, estoy almacenando algunos otros datos, la estructura de datos anterior era solo un ejemplo simple para mostrar dónde están las referencias de mi modelo real. – LiamV