从下一个实体定义开始:
Public Class Certificate{
public ID as int;
}
Public Class Authority{
ID int;
Certificates IEnumerable<Certificate>;
}
我的函数接收 2 个集合:IEnumerable<Certificate>
和IEnumerable<Authority>
. 我需要在输入参数中选择Authorities
至少Certificates collection
有一个证书的那个。IEnumerable<Certificate>
我的第一个实现是枚举IEnumerable<Certificate>
并选择Authority
使用Where(predicate)
.
Public IEnumerable<Authority> SelectAuthorities(authList IEnumerable<Authority>, certList IEnumerable<Certificate>){
foreach (Certificate loadedCert in certList) {
yield return auth.Where(a => a.Certificados.Any(c1 => c1.IDCert == loadedCert.IDCert));
}
}
我认为必须有一种方法可以使用更复杂的 linq 相关子查询来避免 for 循环(我觉得它在“力”中),但我找不到它。
有人可以帮忙吗?