c# - LINQ correlated subqueries -
starting next entities definition:
public class certificate{ public id int; } public class authority{ id int; certificates ienumerable<certificate>; }
my function recives 2 collections: ienumerable<certificate>
, ienumerable<authority>
. need select authorities
certificates collection
has @ least 1 certificate in ienumerable<certificate>
input parameter.
my firt implementation enumerating ienumerable<certificate>
, selecting authority
using 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)); } }
i think there must way avoid loop using more complex linq correlated subquery (i feel in "force") can't find it.
can help?
you can use double any
avoid loop:
authlist.where(a => a.certificados .any(c1 => certlist.any(c2 => c1.idcert == c2.idcert)));
Comments
Post a Comment