Ich habe eine ObservableCollection, die ein Person
Objekt enthält. Ich habe eine Suchfunktion in meiner Anwendung und möchte die relevantesten Ergebnisse ganz oben anzeigen. Was wäre der effizienteste Weg, dies zu tun? Meine aktuelle Suchmethode ruft einfach die contains
Methode:Linq Suchergebnis nach dem nächsten Treffer
var results = (from s in userList
where s.Name.Contains(query)
select s).ToList();
Dies funktioniert gut, aber die Ergebnisse sind in der gleichen Reihenfolge, wie sie innerhalb userList
erscheinen bestellt. Wenn ich nach Pete
suche, dann sollte es zuerst Pete
, dann Peter
, dann Peter Smith
etc. anzeigen. Es muss nicht zu kompliziert sein, da es nur mit ein paar tausend (max) Ergebnissen beschäftigt sein wird. Meine naive Herangehensweise war, zuerst s.Name == query
zu machen, dieses Element anzuzeigen (falls vorhanden), dann das s.Name.Contains(query)
auszuführen, das übereinstimmende Element zu entfernen und es an das vorherige übereinstimmende Ergebnis anzufügen. Dies scheint jedoch ein wenig überall und so gibt es einen besseren Weg? Danke (ps - nur der Name wird bei der Suche verwendet, und ich kann keine SQL-Methoden verwenden)
Danke, ich habe es gerade getestet und es scheint perfekt zu funktionieren. Schön und einfach :) – Brap