【发布时间】:2016-09-15 02:21:17
【问题描述】:
我有两个完全相同类型的对象列表。一个比另一个有更多的项目。我想找出两者之间的区别,并尝试了多种方法,但似乎都返回了完整列表,而不是一个或多个项目的区别。
List<Permission> defaultPermList = defaultRole.Permissions.ToList();
foreach (var role in roles)
{
List<Permission> rolePermList = role.Permissions.ToList();
//All 3 below return the full set of defaultPermList. not the difference of the two lists
var permissions1 = defaultPermList.RemoveAll(x => rolePermList.Contains(x));
var permissions2 = defaultPermList.Where(x => !rolePermList.Contains(x)).ToList();
var permissions3 = defaultPermList.Except(rolePermList).ToList();
}
我查看了许多其他问题和答案,因此我进行了所有不同的尝试。
【问题讨论】:
-
它们可能是代表同一事物的不同对象。检查您的
Equals方法(或制作一个)。您的尝试是正确的,但与“相同”对象进行比较时,比较正在评估false
标签: c# asp.net-mvc list