博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINQ Distinct()
阅读量:5123 次
发布时间:2019-06-13

本文共 2686 字,大约阅读时间需要 8 分钟。

using System;using System.Collections.Generic;using System.Linq;namespace LinqTest{    class Program    {        static void Main()        {            List
listProduct = new List
{ new Product{StockNum=1,ProductNo="01",Tag="a"}, new Product{StockNum=1,ProductNo="01",Tag="a"}, new Product{StockNum=1,ProductNo="01",Tag="a"}, new Product{StockNum=2,ProductNo="01",Tag="b"}, new Product{StockNum=2,ProductNo="01",Tag="b"}, new Product{StockNum=2,ProductNo="01",Tag="b"}, new Product{StockNum=3,ProductNo="02",Tag="c"}, new Product{StockNum=4,ProductNo="02",Tag="d"}, new Product{StockNum=5,ProductNo="03",Tag="e"}, }; //去重复 var listProduct1 = listProduct.Select(s => new Product { StockNum = s.StockNum, ProductNo = s.ProductNo, Tag = s.Tag }).Distinct(new ProductNoComparer()).ToList(); //输出验证 listProduct1.ForEach(c => { Console.WriteLine("ProductNo={0},StockNum={1},Tag={2}", c.ProductNo, c.StockNum, c.Tag); }); Console.WriteLine("-------------------"); //去重复 var listProduct2 = listProduct.Select(s => new { s.ProductNo, s.StockNum, s.Tag }).Distinct().ToList(); //输出验证 listProduct2.ForEach(c => { Console.WriteLine("ProductNo={0},StockNum={1},Tag={2}", c.ProductNo, c.StockNum, c.Tag); }); Console.Read(); } } ///
/// 产品实体类 /// class Product { ///
/// 库存 /// public int StockNum { set; get; } ///
/// 产品编号 /// public String ProductNo { set; get; } ///
/// 附属标签 /// public String Tag { set; get; } } ///
/// 去"重复"时候的比较器(只要ProductNo相同,即认为是相同记录) /// class ProductNoComparer : IEqualityComparer
{ public bool Equals(Product p1, Product p2) { if (p1 == null) return p2 == null; return p1.ProductNo == p2.ProductNo && p1.StockNum == p2.StockNum && p1.Tag == p2.Tag; } public int GetHashCode(Product p) { if (p == null) return 0; return p.ProductNo.GetHashCode(); } }}

 

转载于:https://www.cnblogs.com/xuguanghui/p/5973578.html

你可能感兴趣的文章
Mysql编辑工具中使用(Navicat查询结果显示行号)
查看>>
Teen hit by celebratory gunfire after NBA Finals
查看>>
Linux 格式化磁盘命令mkfs
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
如何提高生产力(二)、软件的开发与采购
查看>>
汉军Hundre考勤数据库数据表分析总结
查看>>
使用with 创建视图
查看>>
【整理】强化学习与MDP
查看>>
双内核问题
查看>>
【转】android程序连接网络出现android.os.NetworkOnMainThreadExceptionat
查看>>
编程是一门实践性的科学
查看>>
判断 JS 中对象的类型
查看>>
从燃尽图看项目管理:你的项目哪里出错了?(燃尽图类型全解析)
查看>>
Python模块及其导入
查看>>
20172329 2017-2018-2 《程序设计与数据结构》实验一报告
查看>>
验证码
查看>>
代码实践
查看>>
学习曾国藩,学做人做事学技术
查看>>
【例3-4】求后序遍历
查看>>
python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)...
查看>>