我有一個ObservableCollection,它包含一個Person
對象。我在我的應用程序中有一個搜索功能,並希望在頂部顯示最相關的結果。什麼是最有效的方法呢?我目前的搜索方法只是調用contains
方法:Linq按最接近的匹配搜索結果
var results = (from s in userList
where s.Name.Contains(query)
select s).ToList();
也能正常工作,但結果中出現內userList
相同的順序排列。如果我搜索Pete
,那麼它應該首先顯示Pete
,然後Peter
然後Peter Smith
等。 它不必太複雜,因爲它只會處理幾千(最大)的結果。我天真的做法是首先做s.Name == query
,顯示該項目(如果有的話),然後執行s.Name.Contains(query)
,刪除匹配的項目並將其追加到先前的匹配結果。然而,這似乎有點到處,所以還有更好的方法嗎?謝謝 (ps - 只有名稱將用於搜索,並且我不能使用SQL方法)
謝謝,我只是測試了這一點,它似乎工作完美。尼斯和簡單:) – Brap 2010-10-13 16:45:58