文档章节

List之Union(),Intersect(),Except() 即并集,交集,差集运算。

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 317
阅读 0
收藏 0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Sample2
{
    class Program
    {
        static void Main(string[] args)
        {
            //List之Union(),Intersect(),Except() 即并集,交集,差集运算
            IList<Student> Students1 = new List<Student>();
            Students1.Add(new Student(1, false, "张三", "深圳"));
            Students1.Add(new Student(2, false, "李四", "广州"));
            Students1.Add(new Student(3, false, "王五", "珠海"));
            Students1.Add(new Student(4, false, "赵六", "东莞"));

            IList<Student> Students2 = new List<Student>();
            Students2.Add(new Student(1, false, "张三", "深圳"));
            Students2.Add(new Student(5, false, "李七", "广州"));
            Students2.Add(new Student(6, false, "孙八", "深圳"));
            Students2.Add(new Student(7, true, "赵燕", "深圳"));

            //自定义比较规则
            var bingji = Students1.Union(Students2, new StudentListEquality()).ToList();//并集(AB集合所有项)
            var jiaoji = Students1.Intersect(Students2, new StudentListEquality()).ToList();//交集 (AB集合共同项)
            var chaji = Students1.Except(Students2, new StudentListEquality()).ToList();//差集(A集合有,B没有)

            Console.WriteLine("以下是并集的结果");
            bingji.ForEach(x =>
            {
                Console.WriteLine(x.Id.ToString() + "    " + x.Sex.ToString() + "   " + x.Name.ToString() + " " + x.Address.ToString());

            });

            Console.WriteLine("以下是交集的结果");
            jiaoji.ForEach(x =>
            {
                Console.WriteLine(x.Id.ToString() + "    " + x.Sex.ToString() + "   " + x.Name.ToString() + " " + x.Address.ToString());

            });

            Console.WriteLine("以下是差集的结果");
            chaji.ForEach(x =>
            {
                Console.WriteLine(x.Id.ToString() + "    " + x.Sex.ToString() + "   " + x.Name.ToString() + " " + x.Address.ToString());

            });
            Console.ReadKey();
        }
    }

    public class Student
    {
        public Student(int id, bool sex, String name, String address)
        {
            this.Id = id;
            this.Sex = sex;
            this.Name = name;
            this.Address = address;
        }
        public int Id { get; set; }
        public bool Sex { get; set; }
        public String Name { get; set; }
        public String Address { get; set; }

    }

    public class StudentListEquality : IEqualityComparer<Student>
    {
        public bool Equals(Student x, Student y)
        {
            return x.Id == y.Id && x.Name == y.Name && x.Address == y.Address && x.Sex == y.Sex;
        }
        public int GetHashCode(Student obj)
        {
            return (obj == null) ? 0 : obj.ToString().GetHashCode();
        }
    }
}

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/53383716

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
详解 SQL 集合运算

原文出处:jackson0714 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化。 概述: 本篇主要是对集合运算中并集、交集、差集运算基础的总结。 集合运算...

jackson0714
2016/08/12
0
0
oracle --union和union all

当我们需要将两个select语句的结果作为一个整体显示时,就需要使用到union或者union all关键字。 union的作用是将多个结果合并在一起显示出来。 union和uinon all的区别是:union会对结果集中...

求是科技
2015/08/03
377
0
SQL Server T-SQL高级查询

高级查询在数据库中用得是最频繁的,也是应用最广泛的。 Ø 基本常用查询 --select select from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinc...

种地瓜
2016/01/06
48
0
SQL集合运算:差集、交集、并集

1、差集( except ) select a from t_a except select a from t_b -- 也可写作: select a from ta where a not in (select a from tb) -- 多个字段时: select a,b from t_a except select ......

颖辉小居
2016/11/04
328
0
SQL集合运算:差集、交集、并集

1、差集( except ) select a from t_a except select a from t_b -- 也可写作: select a from ta where a not in (select a from tb) -- 多个字段时: select a,b from t_a except select ......

赵帅A
2016/04/27
90
0

没有更多内容

加载失败,请刷新页面

加载更多

面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
8分钟前
7
0
读书笔记:深入理解ES6 (八)

第八章 迭代器(Iterator)与生成器(Generator) 第1节 循环语句的问题   在循环、多重循环中,通过变量来跟踪数组索引的行为容易导致程序出错。迭代器的出现旨在消除这种复杂性,并减少循...

张森ZS
8分钟前
6
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
13分钟前
3
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
21分钟前
5
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM...

阿里云官方博客
24分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部