Linq 集合操作符 Except,Intersect,Union
2024-10-11 02:10:24
IList<string> s1 = new List<string>() { "One", "Two", "Three", "Two", "Three", "wjire" };
IList<string> s2 = new List<string>() { "www", "Tssswo", "Three" };
//从 s1 中删除 s1,s2 都有的元素,同时,会按照数据类型的默认比较方式去重;
//如果,该数据元素实现了 IEquatable<T> 接口,优先从按该接口实现的 Equals 方法去重;
//当然,也可以向好多其他筛选方法一样,传一个 实现 IEqualityCompare<T> 的对象,这种方式的优先级最高.
var r1 = s1.Except(s2);//one,two,wjire (虽然 s1 有两个 two 但是,结果集合只有1个.
r1.ToList().ForEach(f => Console.WriteLine(f));
Console.WriteLine("----------------------------"); //返回s1,s2的交集,同样,也会按要求去重
var r2 = s1.Intersect(s2);
r2.ToList().ForEach(f => Console.WriteLine(f));
Console.WriteLine("----------------------------"); //返回s1,s2的并集,同样,也会按要求去重
var r3 = s1.Union(s2);
r3.ToList().ForEach(f => Console.WriteLine(f));
Console.WriteLine("----------------------------");
最新文章
- Class对象即反射
- 4.CXF所支持的数据类型
- backbone模型层浅析
- NGUI 粒子显示在上级
- Android SQLite总结(一) (转)
- Spark系列(十)TaskSchedule工作原理
- 用PHP操作http中Etag、lastModified和Expires标签
- 查看android进程信息
- 10、桥接模式(Bridge)
- 【Java学习笔记之三十】详解Java单例(Singleton)模式
- UEditor Flash文件上传-crossdomain.xml文件配置
- 网站常用的一些javascript封装 简化调用
- Django之验证码
- CSS选择器权重计算
- war和war exploded区别
- eclipse没有server选项
- GIMP使用笔记
- 【C++】C++中类的基本使用
- web工程迁移---在一个jboss5或jboss6中运行多个实例
- 20155232《网络对抗》Exp8 Web基础