Hoi allemaal,
Ik heb een zestal jaren ervaring met php, en ben recentelijk begonnen met het ontwikkelen in ASP.NET MVC. Ik ben volledig bekend met OO-programmeren, en ik heb er veel lol in
Echter loop ik nu tegen wat geavanceerdere problemen aan waar ik geen eenduidig antwoord op kan vinden: recursie.
In een project waar ik nu mee bezig ben heb ik een soort van file-structure opgeslagen in een relationele DB (SQL Server). Stel het je even zo voor:
Een file kan dus children hebben zodat er een soort van directorystructuur ontstaat.
Het probleem waar ik tegen aan loop is het volgende:
Vanuit PHP ben ik gewend dat ik lekker array's mag aanmaken, en daar van alles in kan stoppen. Een array opbouwen met daarin een volledige file structure is dan ook geen probleem in php. In C# lukt het me om de juiste structuur (name, children, 'depth level') naar de debugger console weg te 'printen'. So far so good.
Ik kom in de problemen als ik deze gehele structuur als een object wil returnen. Wat voor object ? Hoe moet ik dit gaan doen? C# verwacht bij arrays altijd een grootte, en ik weet niet hoe diep de tree gaat worden (Geen max).
Het liefst zie ik
Ik heb zelf al rondgekeken op StackOverflow, en wat directe collega's gevraagd, maar niemand schijnt hier eenduidig een antwoord op te hebben.Verder weet ik dat je ook gewoon eerst de root kunt laden, dan alle folders die hier onder vallen, om een 'on-demand' file structuur te tonen zeg maar, maar het gaat mij hier niet om de implementatie, puur om het 'hoe' en 'waarom'.
Ik ben niet op zoek naar een stuk code die dit voor mij oplost, maar naar de weg naar de oplossing, zodat ik het zelf kan gaan uitzoeken en bouwen.
Note: Ik heb nog nooit gewerkt met Generic Types en trees, of andere (voor mij geavanceerde) zaken binnen C#.
Ik heb een zestal jaren ervaring met php, en ben recentelijk begonnen met het ontwikkelen in ASP.NET MVC. Ik ben volledig bekend met OO-programmeren, en ik heb er veel lol in
Echter loop ik nu tegen wat geavanceerdere problemen aan waar ik geen eenduidig antwoord op kan vinden: recursie.
In een project waar ik nu mee bezig ben heb ik een soort van file-structure opgeslagen in een relationele DB (SQL Server). Stel het je even zo voor:
code:
1
| FileId - FileName - FileType (file/folder) - ParentId |
Een file kan dus children hebben zodat er een soort van directorystructuur ontstaat.
Het probleem waar ik tegen aan loop is het volgende:
Vanuit PHP ben ik gewend dat ik lekker array's mag aanmaken, en daar van alles in kan stoppen. Een array opbouwen met daarin een volledige file structure is dan ook geen probleem in php. In C# lukt het me om de juiste structuur (name, children, 'depth level') naar de debugger console weg te 'printen'. So far so good.
Ik kom in de problemen als ik deze gehele structuur als een object wil returnen. Wat voor object ? Hoe moet ik dit gaan doen? C# verwacht bij arrays altijd een grootte, en ik weet niet hoe diep de tree gaat worden (Geen max).
Het liefst zie ik
code:
1
2
3
| [0] = array ( fileId => x .......snip ........
files = array( fileId => y ...... snip ....));
etcetera |
Ik heb zelf al rondgekeken op StackOverflow, en wat directe collega's gevraagd, maar niemand schijnt hier eenduidig een antwoord op te hebben.Verder weet ik dat je ook gewoon eerst de root kunt laden, dan alle folders die hier onder vallen, om een 'on-demand' file structuur te tonen zeg maar, maar het gaat mij hier niet om de implementatie, puur om het 'hoe' en 'waarom'.
Ik ben niet op zoek naar een stuk code die dit voor mij oplost, maar naar de weg naar de oplossing, zodat ik het zelf kan gaan uitzoeken en bouwen.
Note: Ik heb nog nooit gewerkt met Generic Types en trees, of andere (voor mij geavanceerde) zaken binnen C#.
[ Voor 2% gewijzigd door las3r op 27-07-2013 08:33 . Reden: Extra info ]