我有一个很大的字符串列表.我目前通过做一个搜索来处理搜索
.Where(x => x.Contains(search)).ToArray()
Run Code Online (Sandbox Code Playgroud)
这得到了我想要的所有结果,但顺序很差.例如,搜索"ch"可能会出现:
Potato Starch
Chicken
Run Code Online (Sandbox Code Playgroud)
因为它们都包含ch,所以我希望它们都能显示出来,但我希望Chicken在数组中排在第一位,因为它以ch开头.
有什么方法可以重新排序我的结果,所以以搜索字符串开头的字符串是在数组的开头?
您可以通过索引进行排序,从而在开头使用搜索开头的字符串:
.Where(x => x.Contains(search)).OrderBy(x => x.IndexOf(search)).ToArray()
Run Code Online (Sandbox Code Playgroud)