सी # | .NET 4.5 | इकाई की रूपरेखा 5सभी बच्चों को एक सूची में प्राप्त करें - रिकर्सिव सी #
मैं इकाई की रूपरेखा में एक वर्ग है कि इस तरह दिखता है:
public class Location
{
public long ID {get;set;}
public long ParentID {get;set;}
public List<Location> Children {get;set;}
}
आईडी स्थान की पहचान करने की ParentID एक माता पिता के लिए यह लिंक है, और बच्चे के बच्चों के सभी स्थानों को शामिल अभिभावक स्थान। मैं सभी "स्थान" और उनके बच्चों को एक ही सूची में स्थान.आईडी युक्त रखने के लिए, संभवतः दोबारा आसान तरीके की तलाश कर रहा हूं। मुझे इस पुनरावर्ती अवधारणा में परेशानी हो रही है। किसी भी मदद की सराहना की है।
यह वही है मैं अब तक इकाई वर्ग के लिए अपनी एक विस्तार है, है, लेकिन मेरा मानना है कि यह किया जा सकता है बेहतर/आसान:
public List<Location> GetAllDescendants()
{
List<Location> returnList = new List<Location>();
List<Location> result = new List<Location>();
result.AddRange(GetAllDescendants(this, returnList));
return result;
}
public List<Location> GetAllDescendants(Location oID, ICollection<Location> list)
{
list.Add(oID);
foreach (Location o in oID.Children)
{
if (o.ID != oID.ID)
GetAllDescendants(o, list);
}
return list.ToList();
}
UPDATED
मैं लिख रहा समाप्त हो गया एसक्यूएल में रिकर्सन, एसपी में फेंकना, और फिर इसे एंटिटी में खींचना। लिंक्स का उपयोग करने के मुकाबले मुझे साफ और आसान माना जाता है, और टिप्पणियों के आधार पर लिंक और एंटिटी जाने का सबसे अच्छा मार्ग नहीं लगता है। सारी मदद के लिए धन्यवाद!
इकाई फ्रेमवर्क में पुनरावर्ती प्रश्नों के साथ कुछ भी शामिल नहीं है। – Aron
हां, मैं इस कार्यक्षमता को विस्तारित करना चाहता था, मेरे संपादन देखें। – Will
मुझे लगता है कि आप इकाई फ्रेमवर्क आलसी लोडिंग द्वारा समर्थित लिंक टू ऑब्जेक्ट सॉल्यूशन के बजाय एक इकाई फ्रेमवर्क समाधान चाहते थे ... मैंने इकाई फ्रेमवर्क 6 स्रोत कोड में देखा और वास्तव में कार्यक्षमता को जोड़ना चाहता था ...हालांकि माइक्रोसॉफ्ट ने अवशेष वर्गों को 'आंतरिक' के रूप में सेट किया। बीएएस $%^डीएस – Aron