我正在使用int值生成两个列表,并使用linq选择列表2中未找到的列表1的所有ID:
var clerkRole = db.Roles.SingleOrDefault(m => m.Name == "Clerk");
List<ApplicationUser>lstUser = db.Users.Where(x => x.Roles.Select(y => y.RoleId).Contains(clerkRole.Id)).ToList();
List<int> lstUId = lstUser.Select(c => c.Id).ToList();
var alldps = db.Deposits.Select(a => a.UserId).Distinct().ToList();
var clerkNotIn = lstUId.Except(alldps).ToList(); // error here and below
我收到以下错误:
你可以帮忙吗?感谢错误25'System.Collections.Generic.List'不包含'Except'的定义和最佳扩展方法重载'System.Linq.ParallelEnumerable.Except(System.Linq.ParallelQuery,System.Collections.Generic。 IEnumerable)'有一些无效的参数
答案 0 :(得分:2)
我打赌你错过了Linq命名空间,在开头添加:
using System.Linq;
同时更改var
以确保UserId为int
。这不会产生任何影响,除非UserId实际上不是int
,否则您将收到错误消息,表明UserId不是int
:
List<int> alldps = db.Deposits.Select(a => a.UserId).Distinct().ToList();