C# .Net Core 两个对象之间取并集,相比较

时间:2022-02-06 00:41:09


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();