我有一个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