mos*_*o87 1 c# linq linq-to-objects
我有两个清单:
List<MasterData> masterDataList;
List<Job> jobList;
Run Code Online (Sandbox Code Playgroud)
我的课程看起来像这样:
public class Job
{
...
public int MasterDataId { get; set; } //foreign key
}
Run Code Online (Sandbox Code Playgroud)
和:
public class MasterData
{
public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我现在想要遍历我jobList并获得所有具有其中一个MasterDataIdid的工作masterDataList.如何使用LINQ(对象)执行此操作?
jobList.Where(job => masterDataList.Any(m => m.Id == job.MasterDataId));
Run Code Online (Sandbox Code Playgroud)
或者更有效的方法可能是使用HashSet:
var masterIdList = new HashSet<int>(masterDataList.Select(m => m.Id));
var result = jobList.Where(job => masterIdList.Contains(job.MasterDataId));
Run Code Online (Sandbox Code Playgroud)