Hallo zusammen,
ich habe bereits die Suchfunktion benutzt, aber leider nichts passendes für mein Problemfall gefunden oder nichts gefunden, das meiner Meinung nach mein Problem lösen könnte.
Folgendes Szenario:
Ich habe ein Webportal auf dem man nach Produkten suchen kann. Die Suchergebnisse liefert mir eine externe API. Diese API gibt mir einen Array Products[] zurück. Products[] besitzt Objekte names Product mit z.B. diesen Eigenschaften: ProdID, Title, Price, Description. Leider bietet mir die API nur die Möglichkeit, das die Ergebnisse nach Title oder Price sortiert werden. Intern sucht die API das übergebene Suchtwort in Title und Description. Daraus resultiert natürlich, das die Ergebnisqualität, gelinde gesagt, suboptimal ist.
Die Lösung:
Ich erstelle mir ein eigenes Object names AdvancedProduct welches von Product erbt und um die Eigenschaft RelevancePoints erweitert wird. Wie diese RelevancePoints ermittelt werden ist für das Problem nicht relevant.
Das Problem:
Ich möchte nun mein Object AdvancedProduct in Products[] übergeben. Dies allerdings Absteigend nach RelevancePoints sortiert. Und genau hier stehe ich grad auf dem Schlauch.
Sollte etwas unverständlich sein, bitte nachfragen 😃
Beste Grüße
Ich bin mir nicht sicher, aber wäre nicht folgende Lösung das richtige:
System.Array.Sort(array, (p1, p2) => p1.Relevance - p2.Relevance);
Ich gehe dabei davon aus das dein Product ein Feld oder Property vom Typ int mit Namen "Relevance" hat.
Gruß
Tony
Oh, sehe gerade, dass es Absteigend sein soll.
Dann
p2.Relevance - p1.Relevance
T-Man
Wenn du deine AdvancedProduct-Objekte bereits in einem Array oder einer Liste hast, kannst du diese einfach mit LINQ sortieren lassen.
var sortedProducts = myAdvancedProdutcsArray.Sort(item => item.RelevancePoints);
Eventuell noch mit
.Reverse();
hintendran.
Dann hast du eine sortierte Liste mit deinen Items, die du dann weiter verarbeiten kannst.
There are 10 kind of people, those who understand binary and those who don't.