करने के लिए आइटम की सूची कन्वर्ट करने के लिए मैं श्रेणियों की सूची है:अच्छा और सार्वभौमिक रास्ता ट्री
╔════╦═════════════╦═════════════╗
║ Id ║ Name ║ Parent_id ║
╠════╬═════════════╬═════════════╣
║ 1 ║ Sports ║ 0 ║
║ 2 ║ Balls ║ 1 ║
║ 3 ║ Shoes ║ 1 ║
║ 4 ║ Electronics ║ 0 ║
║ 5 ║ Cameras ║ 4 ║
║ 6 ║ Lenses ║ 5 ║
║ 7 ║ Tripod ║ 5 ║
║ 8 ║ Computers ║ 4 ║
║ 9 ║ Laptops ║ 8 ║
║ 10 ║ Empty ║ 0 ║
║ -1 ║ Broken ║ 999 ║
╚════╩═════════════╩═════════════╝
प्रत्येक श्रेणी के एक माता पिता की है। जब माता-पिता 0 होता है - इसका मतलब है कि यह रूट श्रेणी है।
क्या सबसे अच्छा तरीका है जो इसे नीचे की तरह पेड़ संरचना में परिवर्तित करने के लिए है?
दूसरे शब्दों में - इस संरचना से डेटा लाने के लिए कैसे:
class category
{
public int Id;
public int ParentId;
public string Name;
public List<Category> Subcategories;
}
सार्वभौमिक रास्ते में
:
class category
{
public int Id;
public int ParentId;
public string Name;
}
इस एक में? // सार्वभौमिक न केवल निर्दिष्ट वर्ग के लिए है।
क्या आपके पास कुछ स्मार्ट विचार हैं? ;)
डाटा:
var categories = new List<category>() {
new category(1, "Sport", 0),
new category(2, "Balls", 1),
new category(3, "Shoes", 1),
new category(4, "Electronics", 0),
new category(5, "Cameras", 4),
new category(6, "Lenses", 5),
new category(7, "Tripod", 5),
new category(8, "Computers", 4),
new category(9, "Laptops", 8),
new category(10, "Empty", 0),
new category(-1, "Broken", 999),
};
आप बेहतर तरीके, डेटाबेस में श्रेणीबद्ध डेटा स्टोर इस प्रस्तुति की जाँच में रुचि रखते हैं: http://www.slideshare.net/billkarwin/sql- antipatterns-strike-back –