minos5000
2011-04-19, 17:05:50
Hi,
ich steh grad auf dem Schlauch, aber vielleicht ist es auch einfach schon zu spät für Gehirnakrobatik.
Folgende Situation:
Ich habe eine Menge von Objekten mit jeweils n Attributen. Auf der Menge soll gesucht werden können und zwar nach 1-n Suchparametern, ist ein Parameter nicht gesetzt muss das entsprechende Attribut ignoriert werden.
Die Anforderung entspricht also einem select auf Objekten mit AND Verknüpfung der Suchparameter. In C# würde ich Linq nehmen, aber das steht unter Delphi leider nicht zur Verfügung :(
Nun meine Frage, gibt es eine Möglichkeit, das elegant hinzubekommen ohne Monster if-Abfragen schreiben zu müssen? Mein erster Gedanke war das mit einer Hashfunktion zu machen. Aber da die Zahl der Suchparameter variieren kann, muss ich dann bei jeder Suche immer die Hashwerte erneut berechnen und das wirkt auf mich etwas unschön... Und da ich bisher nur in "modernen" Sprachen unterwegs war, und mich um so etwas noch nie kümmern musste, weiss ich auch gar nicht wie anfangen, um elegant aus Attribute einen Hashwert zu berechnen wenn ich wirklich alles selber machen muss.
Gruß
minos
ich steh grad auf dem Schlauch, aber vielleicht ist es auch einfach schon zu spät für Gehirnakrobatik.
Folgende Situation:
Ich habe eine Menge von Objekten mit jeweils n Attributen. Auf der Menge soll gesucht werden können und zwar nach 1-n Suchparametern, ist ein Parameter nicht gesetzt muss das entsprechende Attribut ignoriert werden.
Die Anforderung entspricht also einem select auf Objekten mit AND Verknüpfung der Suchparameter. In C# würde ich Linq nehmen, aber das steht unter Delphi leider nicht zur Verfügung :(
Nun meine Frage, gibt es eine Möglichkeit, das elegant hinzubekommen ohne Monster if-Abfragen schreiben zu müssen? Mein erster Gedanke war das mit einer Hashfunktion zu machen. Aber da die Zahl der Suchparameter variieren kann, muss ich dann bei jeder Suche immer die Hashwerte erneut berechnen und das wirkt auf mich etwas unschön... Und da ich bisher nur in "modernen" Sprachen unterwegs war, und mich um so etwas noch nie kümmern musste, weiss ich auch gar nicht wie anfangen, um elegant aus Attribute einen Hashwert zu berechnen wenn ich wirklich alles selber machen muss.
Gruß
minos