मुझे ऐसी स्थिति का सामना करना पड़ रहा है जहां मेरे पास निर्भर वस्तुएं हैं और मैं किसी ऑब्जेक्ट को हटाने और इसके सभी संदर्भों को हटाने में सक्षम होना चाहता हूं।सूचियों से वस्तुओं को हटाने और उनके लिए सभी संदर्भ
कहें कि मेरे पास नीचे दिए गए कोड की तरह एक ऑब्जेक्ट संरचना है, जिसमें शाखा प्रकार है जो दो नोड्स का संदर्भ देता है।
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;
}
अगर मैं ग्राफ़ कक्षा में नोड्स सूची में से एक नोड को हटाने, यह अभी भी संभव है कि एक या अधिक शाखा वस्तुओं अभी भी हटा दिया नोड का संदर्भ होता है इस प्रकार स्मृति में बनाए रखना है, जबकि वास्तव में मैं क्या काफी हद तक हटाए गए नोड को किसी भी संदर्भ में सेट करना होगा और कचरा संग्रह को किक करने दें।
प्रत्येक शाखा के माध्यम से गणना करने और अनुक्रमिक रूप से प्रत्येक नोड संदर्भ की जांच करने के अलावा, क्या कोई संदर्भ है कि मैं संदर्भ कैसे हटाता हूं प्रत्येक शाखा के उदाहरण में नोड में और वास्तव में किसी अन्य वर्ग जो हटाए गए नोड का संदर्भ देता है?
क्या आप वास्तव में शाखा पर कोई डेटा संग्रहीत कर रहे हैं? यदि नहीं, तो आप पूरी तरह से उस वर्ग से छुटकारा पा सकते हैं और नोड कक्षा पर संबंधित नोड्स स्टोर कर सकते हैं। –
हाय, हां, मैं कुछ अन्य डेटा संग्रहीत कर रहा हूं, उपरोक्त डेटा संरचना यह दिखाने के लिए एक साधारण उदाहरण था कि मेरे वास्तविक मॉडल के संदर्भ कहां हैं। – LiamV