【发布时间】:2012-10-20 12:00:49
【问题描述】:
我尝试减去 2 个列表,如下面的代码,assignUsers 有 3 条记录,assignedUsers 有 2 行。在Except 方法之后我仍然得到3 行,虽然我应该得到1 条记录,因为assignedUsers 中的2 行类似于assignUsers
var users = accountApp.GetUsersByAccountId(context.GetUserData().AccountId);
List<AssignUserViewModel> assignUsers = Mapper.Map<List<AssignUserViewModel>>(users).ToList();
var mailUsers = mailApp.GetMailAssignedByMailId(id).Select(m => new { m.UserId, m.User.Name }).ToList();
List<AssignUserViewModel> assignedUsers = mailUsers.Select(Mapper.DynamicMap<AssignUserViewModel>).ToList();
assignUsers = assignUsers.Except(assignedUsers).ToList();
【问题讨论】:
-
您的映射器可能正在丢失引用,并且该类型可能没有定义其他比较器。
-
使用 IComparerer 编写比较函数。
-
@leppie 您应该将其发布为答案:)
-
如何正确地将匿名类型映射到其他类型?如果是这样的话