LINQ:从IQueryable中删除项目

tsi*_*ilb 5 c# linq collections iterator linq-to-sql

我想在使用数据绑定之前从LINQ查询的结果中删除一个项目.这样做的正确方法是什么?

我插图中的foreach是我的问题的主题.插图:

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"]));
foreach (Activity act in obj)
    if (isDomainBlacklisted(ref dc, act.Referrer))
        obj.Remove(act);
Run Code Online (Sandbox Code Playgroud)

byt*_*der 8

你不需要foreach就可以使用这个......

obj.RemoveAll(act => isDomainBlackListed(ref dc, act.Referrer));
Run Code Online (Sandbox Code Playgroud)