C# Distinct使用,支持对象的相等比较
官网Enumerable.Distinct
https://msdn.microsoft.com/zh-cn/library/bb338049.aspx
CSDN中作者oriency755
关于Distinct的使用:
http://blog.csdn.net/oriency755/article/details/13773557
使用
![](/assets/blank.gif)
![](/assets/blank.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Transactions;namespace Activity {public class ActivitySceneService{public List<DrawPlay> GetDraw(int activitySceneID){using (var dbContext = new DbContext()){var merchant = dbContext.Find<Merchant>(1);var playList = new List<DrawPlay>();playList = dbContext.Draw001Plays.Where(u => u.ActivitySceneID == activitySceneID).Distinct(new Compare<DrawPlay>((x, y) => (x != null && y != null && x.UserID == y.UserID))).ToList();//放置比较器return playlist;}}}public delegate bool CompareDelegate<T>(T x, T y);public class Compare<T> : IEqualityComparer<T>{private CompareDelegate<T> _compare;public Compare(CompareDelegate<T> d){this._compare = d;}public bool Equals(T x, T y){if (_compare != null){return this._compare(x, y);}else{return false;}}public int GetHashCode(T obj){return obj.ToString().GetHashCode();}} }
Test
![](/assets/blank.gif)
![](/assets/blank.gif)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data;namespace NAMESPACE {public class CLASSNAME{public void Test(){using (var dbContext = new DbContext()){dbContext.DATABASE.Distinct(new Compare<MODELTYPE>((x, y) => (x != null && y != null && x.FIELD> VALUE && y.FIELD> VALUE))).ToList();}}}//使用委托public delegate bool CompareDelegate<T>(T x, T y);public class Compare<T> : IEqualityComparer<T>{private CompareDelegate<T> _compare;public Compare(CompareDelegate<T> d){this._compare = d;}public bool Equals(T x, T y){if (_compare != null){return this._compare(x, y);}else{return false;}}public int GetHashCode(T obj){return obj.ToString().GetHashCode();}} }
和上一个差不多
![](/assets/blank.gif)
![](/assets/blank.gif)
Distinct项目内使用using Qxun.Framework.Utilityvar onlineRecords = dbContext.OnLineRecords.ToList().Distinct(new CompareExtend<OnLineRecord>((x, y) => x != null && y != null && x.MerchantID == y.MerchantID && x.ActivitySceneID == y.ActivitySceneID));****************************************CompareExtend类********************************************************using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Qxun.Framework.Utility {public delegate bool CompareDelegate<T>(T x, T y);public class CompareExtend<T> : IEqualityComparer<T>{private CompareDelegate<T> _compare;public CompareExtend(CompareDelegate<T> d){this._compare = d;}public bool Equals(T x, T y){if (_compare != null){return this._compare(x, y);}else{return false;}}public int GetHashCode(T obj){return obj.ToString().GetHashCode();}} }
distinct 项目中使用
转载于:https://www.cnblogs.com/danlis/p/5353749.html
C# Distinct使用,支持对象的相等比较相关推荐
- 异常:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。
某一天,在调试程序时突然发现,在附加数据库后,想添加关系表,结果出来了下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续,请首先使用"数据库属性"对话 ...
- 此数据库没有有效所有者,因此无法安装数据库关系图支持对象--解决办法
摘要:微信搜索[三桥君] 一.问题 当我们想要打开"数据库关系图"时,会出现这个问题. 此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续,请首先使用数据库属性对话 ...
- Mobox企业网盘支持对象存储帮助用户推进私有云
企业网盘支持对象存储帮助用户推行私有云 Mobox 企业网盘存储设备支持:1)本地磁盘:2)Nas网络存储:3)对象存储:这里重点说一下对象存储与传统的有什么差异 传统的存储通常以GB/TB为单位进行 ...
- 关于IE内核浏览器使用 document.all.wb.ExecWB(x,x); 报错“找不到对象”,“不支持对象” 或 “对象不支持属性或方法”等问题的解决
如题, 之前项目中客户都默认使用IE浏览器,所以在文件打印时就使用了document.all.wb.ExecWB(.,.)的打印方法,该方法怎么使用此处不做赘论,网上大佬的相关方法太多了. 在使用时, ...
- 千里眼摄像头支持对象存储吗_【手机技术】专业相机应用Halide全面支持苹果iPhone SE 2人像模式...
新闻转自IT之家,根据外媒9to5Mac的报道,iPhone SE 2的后置摄像头支持人像模式,但有一个限制:只适用于人,而不是所有物体.现在,最新的Halide相机应用增加了对iPhone SE 2 ...
- 千里眼摄像头支持对象存储吗_3.5ms超高速写入、支持125℃工作的EEPROM“BR24H-5AC系列”...
~电子设备出厂前的初始数据写入时间可减少30%~ 全球知名半导体制造商ROHM(总部位于日本京都市)面向车载摄像头和传感器出厂设置.安全气囊的弹出记录以及需要长时间通电的FA设备和服务器的数据记录系统 ...
- Thinkphp修改一句代码,使得foreach标签支持对象,增加变量[数组对象]混合解析法!...
2019独角兽企业重金招聘Python工程师标准>>> 今天修补一个老项目中,使用的是TP框架,到视图区发现对象无法遍历输出.真够郁闷的,对于不喜欢数组喜欢变量的强迫症来说就得琢磨琢 ...
- 千里眼摄像头支持对象存储吗_视频监控对象存储
一. 中东市场,国际安防厂家活跃 Milestone.Genetec.Thales.Honeywell.Bosch.Hikivision.Dahua , Tyco, Samsung, AXIS,Pec ...
- 千里眼摄像头支持对象存储吗_为什么建议大家使用对象存储?我总结了这六点...
对象存储可以简单理解为用来存储图片.音频.视频等非结构化数据的数据池.相对于主机服务器,具有读写速度快,利于分享的特点.我为什么建议大家使用对象存储?我总结了这六点. 1.网站数据动静分离,大幅提升网 ...
最新文章
- 加强原始创新和基础研究的前提:三项破解之策
- Java Review - 并发编程_ThreadPoolExecutor原理源码剖析
- 读书笔记--Python基础教程 001
- matlab 机器学习相关函数、api
- 深度学习笔记_基本概念_卷积网络中的通道channel、特征图feature map、过滤器filter和卷积核kernel
- 【UML】部署图和构件图
- 下载 MIUI任意型号卡刷包/线刷包
- 树莓派链接USB摄像头
- 上周刚号召加班,这周立马双休,董明珠把互联网玩明白了……
- 使用pygame实现双人五子棋游戏
- 光E电4个必懂的理财基础知识
- Selenium中的EC模块
- flink实战--核心概念解析和应用
- 计算机专业英语一国家线,从以往国家公布的数据,客观来看2010年英语国家线...
- java calendar 增加年_java 使用Date类、Calendar类,实现增加日期
- Codec2类的解析
- 卡巴斯基KAV/KIS 6.0/7.0 永久免费激活方法
- python Process finished with exit code -1073741571 (0xC00000FD)
- python怎么做直方图_python如何画直方图
- JAVA8 十大新特性详解