MenuDto 是我的菜单表, 一个用户可能有两个角色,每个角色对应看相应菜单。
A用户是两个角色,那他应该能看到两个角色所有的菜单(取并集)
public class MenuDto
{
public string Name { get; set; }
/// <summary>
/// 菜单编号
/// </summary>
public string Code { get; set; }
}
public class CompareMenuModel : IEqualityComparer<MenuDto>
{
public bool Equals(MenuDto x, MenuDto y)
{
return x.Id == y.Id;
}
public int GetHashCode(MenuDto p)
{
if (p == null)
return 0;
return p.Code.GetHashCode();
}
}
---------------
mDto 是 另一个角色能看到的菜单
var newMenuDto = newMenuDto.Union(mDto, new CompareMenuModel()).ToList();