ASP.netCoreC#中的LinqDistinct不起作用。
创始人
2024-09-17 19:30:05
0

可能是由于默认情况下Linq Distinct方法只检查对象的引用是否相同,而不是对象的值是否相同。要解决该问题,可以使用IEqualityComparer来指定比较对象的条件。

示例代码如下:

  1. 定义一个类MyClass,并重写它的Equals和GetHashCode方法:

    class MyClass { public int Id { get; set; } public string Name { get; set; }

     public override bool Equals(object obj)
     {
         if (obj == null || !(obj is MyClass))
         {
             return false;
         }
         return this.Id == ((MyClass)obj).Id && this.Name == ((MyClass)obj).Name;
     }
    
     public override int GetHashCode()
     {
         return this.Id.GetHashCode() ^ this.Name.GetHashCode();
     }
    

    }

  2. 在需要用到Distinct方法的地方,使用自定义的IEqualityComparer:

    var list = new List { new MyClass{Id=1, Name="A"}, new MyClass{Id=2, Name="B"}, new MyClass{Id=2, Name="B"}, new MyClass{Id=3, Name="C"} };

    var distinctList = list.Distinct(new MyClassEqualityComparer());

    // 自定义的IEqualityComparer class MyClassEqualityComparer : IEqualityComparer { public bool Equals(MyClass x, MyClass y) { if (x == null || y == null) { return false; } return x.Equals(y); }

     public int GetHashCode(MyClass obj)
     {
         if (obj == null)
         {
             return 0;
         }
         return obj.GetHashCode();
     }
    

    }

通过这种方式,就可以在ASP.net Core C#中使用Linq Distinct方法来比较对象的属性值是否相同。

相关内容

热门资讯

微扑克系统发牌规律!wepok... 1、微扑克系统发牌规律!wepoke有软件吗,wpk俱乐部有假,教你攻略(有挂详情);代表性(透视辅...
透视攻略(wePoKe)外挂透... 透视攻略(wePoKe)外挂透明挂辅助代打(wepoke一定有挂)原来真的是有挂(详细透视详细教程)...
智星德州菠萝偷偷看牌功能!德州... 智星德州菠萝偷偷看牌功能!德州ai辅助器,来玩德州app有挂,黑科技教程(有挂详情)是一款可以让一直...
透视存在(wePOKE)透明挂... 自定义wepokeai辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
wepoke是真的有挂!来玩a... wepoke是真的有挂!来玩app德州安卓有用吗,wpk辅助nzt,教你攻略(有挂了解)1、这是跨平...
透视好友房(wePOke)外挂... 透视好友房(wePOke)外挂透明挂辅助器(wepok软件透明挂)原生是有挂(详细透视透明挂教程)是...
wepoke智能ai!微扑克a... 一、微扑克ai辅助器苹果版简介了解软件请加微:136704302微扑克ai辅助器苹果版是一款在线扑克...
透视美元局(WEpoke)透视... 透视美元局(WEpoke)透视辅助app(wepoke有辅助挂)最初有挂(详细透视技巧教程)这是由厦...
微扑克ai辅助工具!轰趴大菠萝... 微扑克ai辅助工具!轰趴大菠萝十三水辅助,wpk辅助器是真的假的,高科技教程(有挂详情);人气非常高...
透视安装(WePoKer)透视... 透视安装(WePoKer)透视辅助挂(wepoke确实有挂)一直是有挂(详细透视解说技巧)是一款可以...