Вы можете просто поместить его в конец запроса, чтобы отфильтровать их, прежде чем они даже окажутся в результате:
var obj =
(from a in dc.Activities
where a.Referrer != null
&& a.Referrer.Trim().Length > 12
&& a.Session.IP.NumProblems == 0
&& (a.Session.UID == null || a.Session.UID < 1 || a.Session.User.BanLevel < 1)
select a)
.Take(int.Parse(ConfigurationManager.AppSettings["RecentItemQty"]))
.Where(a => !isDomainBlacklisted(ref dc, a.Referrer));
Вы можете поставить Where
перед Take
, если хотите, чтобы другие элементы заменяли отфильтрованные, но это, конечно, означает, что больше вызовов isDomainBlacklisted.