我的代码是这样的:
List<int> IDs = new List<int> {9,7,38, 23}
IQueryable<Post> pp = myDataEntity.Posts.Where(p=>IDs.Contains(p.ID));
如何解释我想按ID中ID的顺序对pp进行排序?谢谢。
答案 0 :(得分:1)
假设您想要保留ID中的ID顺序,而不是实际上是它的订购版本,那么您可以这样做:
var pp = IDs.Select(x=> myDataEntity.Posts.Where(p=>p.ID == x))
.SelectMany(x=>x);
使用ID作为外部集合,您可以保持元素的顺序。
答案 1 :(得分:1)
您可以按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);
答案 2 :(得分:0)
IQueryable<Post> pp = myDataEntity.Posts.Where(p=>IDs.Contains(p.ID))
.OrderByDescending(p => p.ID)