我的代码是这样的:
List<int> IDs = new List<int> {9,7,38, 23}
IQueryable<Post> pp = myDataEntity.Posts.Where(p=>IDs.Contains(p.ID));
我如何解释我想按 ID 中的 ID 顺序对 pp 进行排序?谢谢你。
假设您想保留您在 ID 中的 ID 顺序,而不是实际上它的有序版本,您可以这样做:
var pp = IDs.Select(x=> myDataEntity.Posts.Where(p=>p.ID == x))
.SelectMany(x=>x);
使用 ID 作为外部集合,您可以保持其中元素的顺序。
您可以通过以下方式订购List.IndexOf
:
IQueryable<Post> orderedPosts myDataEntity.Posts
.Select(p => new { Post=p, Index=IDs.IndexOf(p.ID) })
.Where(x => x.Index >= 0)
.OrderBy(x => x.Index)
.Select(x => x.Post);
IQueryable<Post> pp = myDataEntity.Posts.Where(p=>IDs.Contains(p.ID))
.OrderByDescending(p => p.ID)