我有这套
委托用户角色:1,2,3,4
UserSelectedRoles: 1,2,3
所以 UserSelectedRoles 是 delegatingUserRoles 的子集,那么为什么
delegatingUserRoles.Contains(UserSelectedRoles)
返回错误?
Contains
方法测试特定项目是否包含在列表中。它不测试项目列表是否全部包含在列表中。你可以这样做:
if (UserSelectedRoles.All(item => delegatingUserRoles.Contains(item))
var l1 = new List<Int32> { 1 };
var l2 = new List<Int32> { 1,2,3 };
var r = l1.All(l => l2.Contains(l));
r = 真
因为
Contains()
方法检查单个对象是否包含在列表中,而不是检查一个列表是否包含在另一个列表中。
我想你需要
All()
这里。