我如何获得县列表中的参与者?我获取 var 县中的县,然后我想获取县列表中具有 CountyOfParticipationId 的所有参与者。
if (collaborationId != null)
{
var counties = (from c in db.CountyCollaborations
where c.CollaborationId == collaborationId
select c).ToList();
participants = participants.Where(p => p.CountyOfParticipationId in counties);
}
Run Code Online (Sandbox Code Playgroud)
.Where(p => counties.Contains(p.CountyOfParticipationId))
现在,如果有大量数据,请注意其复杂性。Contains
列表中的时间复杂度为 O(n),因此总体算法为 O(n*m),其中 n,m 是参与者数量和县数量。
为了获得更好的性能,您可以将县存储在 HashSet 中,该 HashSet 的 Contains 复杂度为 O(1),意味着总体复杂度为 O(n)。
当然,如果县的数量很少,那也没关系。
编辑:刚刚注意到您的列表不包含 id,而是包含完整的对象。为了使上面的代码正常工作,您还需要将 linq 查询从select c
toselect c.Id
或类似的内容更改为(不知道字段的名称)。
归档时间: |
|
查看次数: |
37946 次 |
最近记录: |