【发布时间】:2015-02-16 21:03:00
【问题描述】:
我只是想知道将某些项目放在列表顶部的列表中的最佳方法。此模型用于在视图中显示搜索结果,并以 List<T> 的形式来自控制器。所以我的目标是 Display all Items ,但是具有特定属性的 Items 将转到列表的开头,因此它们首先显示。
所以我的控制器会是这样的:
List<Item> listFromRepository = repository.GetSearchResults();
List<Item> topItems = listFromRepository
.Where(x => x.Subject == 5) // any filter for items to be at top of search results
List<Item> listForView = new List<Item>();
listForView.AddRange(topItems);
listForView.AddRange(listFromRepository.Exclude(x => x.Subject == 5));
return Json(listForView);
【问题讨论】:
-
这种方法有什么问题?什么不工作?
-
为什么不使用 order by?
-
这就是我想要的,但我不认为 OrderBy() 允许您执行类似所有带有 SubjectId == 5 的项目到顶部和所有其他 SubjectId 之后的事情
-
arrrggghhh 。不是降序,一个特定的数字,比如用户选择了 24 ,然后 24 到顶部,然后每隔一个数字在后面
-
@ScottSelby 啊,您可能想将其添加到您的问题中
标签: c# asp.net-mvc linq entity-framework