C# 对象按条件去重(Distinct)

20170725191238529.png

现有一个BSUserRoleResult类

public class BSUserRoleResult
{
	/// <summary>
	/// 获取或者设置 角色分组编号
	/// </summary>
	public int RoleGroupId { get; set; }

	/// <summary>
	/// 获取或者设置 角色编号
	/// </summary>
	public int RoleId { get; set; }
}

继承泛型接口  IEqualityComparer

/// <summary>
/// 
/// </summary>
public class BSUserRoleComparerResult : IEqualityComparer<BSUserRoleResult>
{
	/// <summary>
	/// 
	/// </summary>
	/// <param name="x"></param>
	/// <param name="y"></param>
	/// <returns></returns>
	public bool Equals(BSUserRoleResult x, BSUserRoleResult y)
	{
		if (x == null || y == null)
			return false;
		if (x.RoleGroupId == y.RoleGroupId && x.RoleId==y.RoleId)
			return true;
		else
			return false;
	}
	/// <summary>
	/// 
	/// </summary>
	/// <param name="obj"></param>
	/// <returns></returns>
	public int GetHashCode(BSUserRoleResult obj)
	{
		if (obj == null)
			return 0;
		else
			return obj.RoleGroupId.GetHashCode() ^ obj.RoleId.GetHashCode();
	}
}

调用方法


roleInfos = roleInfos.Distinct(new BSUserRoleComparerResult()).ToList();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值