you*_*gul 4 c# linq sorting ienumerable
我有以下数据
jabb
Bucynski
Bartley
Abart
Benson
Brown
Beerbower
Mack
Nina
Salt
Walter
Run Code Online (Sandbox Code Playgroud)
用户对这些记录执行搜索,我想以这样的方式对记录进行排序:以搜索字符串开头的记录应按字母顺序显示在顶部,其余记录应该在这些记录之后.假设用户搜索"b",那么搜索结果列表应该是这样的
Bartley
Beerbower
Benson
Brown
Bucynski
Abart
jabb
Mack
Nina
Salt
Walter
Run Code Online (Sandbox Code Playgroud)
我们在这里看到两个组,一个按字母顺序以"b"开头,而按字母顺序排列所有其他组
注意:我试过这样的
IEnumerable<Admin_Customer_List_Result> adminResult;
adminResult adminResult.OrderBy(m => m.Last_Name.StartsWith(searchString) ? 0 : 1)
Run Code Online (Sandbox Code Playgroud)
只需添加一个ThenBy,然后订购以b开头的东西和没有的东西.如果您希望小写"b"匹配以大写"B"开头的名称,您可能还需要进行不区分大小写的比较.
adminResult.OrderBy(m => m.Last_Name.ToLower()
.StartsWith(searchString.ToLower()) ? 0 : 1)
.ThenBy(m => m.Last_Name);
Run Code Online (Sandbox Code Playgroud)
此外,你可以使用OrderByDescending,你不需要? 0 : 1.
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |