Ik heb een functie gemaakt die een array van objecten sorteert op 1 van de velden(veld:voorbeeld) uit dit object.
Hiervoor haal ik voor ieder object de waarden uit het veld "voorbeeld", en indien deze nog niet in een tijdelijke arraylist voorkomt dan voegt ik deze waarden toe. Hierna sorteer ik deze ArrayList en vervolgens ga ik met deze ArrayList de array van objecten sorteren.
Tot zo ver geen enkel probleem. Het sorteren gaat prima, en het doet wat ik in eerste instantie wilde dat hij ging doen.
Maar toen had ik een kort overleg met een collega over deze methode, en hij was toevallig ook tegen een probleem zoals deze aangelopen, alleen wilt hij hem sorteren op een ander veld uit het object. Nu kan ik natuurlijk gewoon de functie kopieren met een andere naam, en vervolgens sorteren op een ander veld maar het zou mooier zijn als ik dit generiek zou kunnen maken.
Hiervoor lijkt het mij noodzakelijk om een veldnaam aan de functie mee te geven (gewoon een string), maar daar komt het probleem om de hoek kijken. Hoe krijg ik dit veld vervolgens uit mijn object. Hieronder een klein stukje voorbeeld code om 1 en ander duidelijker te maken.
Ik heb hierbij geen flauw idee hoe dit heet wat ik wil, waardoor zoeken al een stukje lastiger wordt.
Wel heb ik gezocht naar manieren om in C# met een loop door alle velden van een object te lopen, maar dit heeft tot op heden geen succes gebracht.
Hopelijk kan iemand mij de juiste richting op slaan (of gewoon een duwtje in de juiste richting is ook goed).
Hiervoor haal ik voor ieder object de waarden uit het veld "voorbeeld", en indien deze nog niet in een tijdelijke arraylist voorkomt dan voegt ik deze waarden toe. Hierna sorteer ik deze ArrayList en vervolgens ga ik met deze ArrayList de array van objecten sorteren.
Tot zo ver geen enkel probleem. Het sorteren gaat prima, en het doet wat ik in eerste instantie wilde dat hij ging doen.
Maar toen had ik een kort overleg met een collega over deze methode, en hij was toevallig ook tegen een probleem zoals deze aangelopen, alleen wilt hij hem sorteren op een ander veld uit het object. Nu kan ik natuurlijk gewoon de functie kopieren met een andere naam, en vervolgens sorteren op een ander veld maar het zou mooier zijn als ik dit generiek zou kunnen maken.
Hiervoor lijkt het mij noodzakelijk om een veldnaam aan de functie mee te geven (gewoon een string), maar daar komt het probleem om de hoek kijken. Hoe krijg ik dit veld vervolgens uit mijn object. Hieronder een klein stukje voorbeeld code om 1 en ander duidelijker te maken.
code:
1
2
3
4
5
| private void SorteerSample(string sorteerveld)
{
DemoObject demo = new DemoObject();
string gezochtewaarde = demo.[sorteerveld].ToString();
} |
Ik heb hierbij geen flauw idee hoe dit heet wat ik wil, waardoor zoeken al een stukje lastiger wordt.
Wel heb ik gezocht naar manieren om in C# met een loop door alle velden van een object te lopen, maar dit heeft tot op heden geen succes gebracht.
Hopelijk kan iemand mij de juiste richting op slaan (of gewoon een duwtje in de juiste richting is ook goed).