我正在进行LINQ查询,我从表视频中选择视频信息.查询仅选择以下列表中存在ID的视频:
List<int> results; //Has some values
var query = from l in dataContext.Videos
where results.Contains(l.ID)
select l;
Run Code Online (Sandbox Code Playgroud)
现在如何在查询中订购项目(视频信息),使其ID与List结果的顺序相同?
我可以这样做:
List<int> results; //Has some values
var query = from k in results
from l in dataContext.Videos
where k==l.ID
select l;
Run Code Online (Sandbox Code Playgroud)
但这很慢,我需要更快的东西.
使用a join,速度要快得多
var orderedByIDList = from k in results
join l in dataContext.Videos
on k equals l.Id
select l;
Run Code Online (Sandbox Code Playgroud)
由于@MarcinJuraszek和@Phil的评论加入/编辑,谢谢你们.
基本上先抓住你的数据然后排序,这就是我得到的:
var myList = (from l in dataContext.Videos
where results.Contains(l.ID)
select l).ToList(); //grab data and resolve to list or array
var orderedByIDList = from k in results
join l in myList
on k equals l.Id
select l; //result type IEnumerable<Video>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |