LINQ删除UserId在列表中的所有用户

sim*_*mer 4 c# linq

 public JsonResult SearchUser(string term_, int[] assetOwnerIdList_)
    {
        term_ = term_.Trim();

        var userMatches = (from user in _db.Query<User>()
                           where user.Name.Contains(term_) || user.Email.Contains(term_)
                           select new ItemLabelId { Label = user.Email, Id = user.UserId }).ToList().Any();

        return Json(userMatches, JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码,我想过滤结果,如果用户UserId在assetOwnerIdList_列表中然后删除它们,例如Result.RemoveAll.Where(user.UserId in assetOwnerIdList_)

谢谢

Zei*_*kki 6

简单:

Result.RemoveAll(x => assetOwnerIdList_.Contains(x.UserId)); 
Run Code Online (Sandbox Code Playgroud)

如果要在查询中直接过滤useMatches,则:

这仅在查询提供程序支持contains方法(IN Translation)时才有效,否则,请使用上面的方法.

var userMatches = (from user in _db.Query<User>()
                    where user.Name.Contains(term_) || user.Email.Contains(term_)
                    && assetOwnerIdList_.Contains(user.UserId) == false
                    select new ItemLabelId { Label = user.Email, Id = user.UserId }).ToList().Any();
Run Code Online (Sandbox Code Playgroud)