C# List集合基础操作
这里介绍一下C# list的基础操作: 去重、差集、并集、交集
下面,我们看看例子。我们创建了一个User实体,包含两个list,User实体如果Id相等,则相等。
users1是id 1到4的集合,users2是id 4到8的集合。
List<User> users1 = new List<User>();
users1.Add(new User() {Id = , Age = , Name = "Name01"});
users1.Add(new User() { Id = , Age = , Name = "Name02" });
users1.Add(new User() { Id = , Age = , Name = "Name03" });
users1.Add(new User() { Id = , Age = , Name = "Name04" }); List<User> users2 = new List<User>();
users2.Add(new User() { Id = , Age = , Name = "Name044" });
users2.Add(new User() { Id = , Age = , Name = "Name01" });
users2.Add(new User() { Id = , Age = , Name = "Name06" });
users2.Add(new User() { Id = , Age = , Name = "Name07" });
users2.Add(new User() { Id = , Age = , Name = "Name08" }); //把两个list合并在一起
var result1 = new List<User>();
result1.AddRange(users1);
result1.AddRange(users2); //去重:在result1中去重
var result2 = result1.Distinct().ToList(); //差集:users1在users2之中的差集
var result3 = users1.Except(users2).ToList(); //并集:users1与users2 合起来不重复的元素
var result4 = users1.Union(users2).ToList(); //交集:users1与users2 相同的元素
var result5 = users1.Intersect(users2).ToList();
下面我们看看User实体的定义:
需要注意的是,我们重写了User的GetHashCode与Equals方法来比较对象是否相等。
public class User
{
public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
User u = (User) obj;
if (this.Id != && u.Id == this.Id)
return true;
return false; } public override int GetHashCode()
{
return this.Id.GetHashCode();
} public override string ToString()
{
return string.Format("id=" + this.Id);
}
}
可以关注本人的公众号,多年经验的原创文章共享给大家。

C# List集合基础操作的更多相关文章
- python基础之数据类型操作补充,集合及其操作,深浅拷贝
内容概要: 数据类型操作补充 集合及其操作 深浅拷贝1.基础数据类型补充 1.1字符串的操作补充li = ["李嘉诚", "麻花藤", "黄海峰&qu ...
- 【代码笔记】Java常识性基础补充(二)——数组、ArrayList集合、ASCII编码、 eclipse基础操作、eclipse调试、eclipse项目导入、eclipse快捷键
1.0 如何定义数组以及访问数组中的元素,如下所示.ArrayDemo01.java public class ArrayDemo01 { public static void main(String ...
- Python 基础之集合相关操作与函数和字典相关函数
一:集合相关操作与相关函数 1.集合相关操作(交叉并补) (1)intersection() 交集 set1 = {"one","two","thre ...
- day07-Python运维开发基础(深/浅拷贝、字典/集合/相关操作)
1. 深拷贝与浅拷贝 # ### 深拷贝 和 浅拷贝 """ a = 7 b = a a = 8 print(b) lst1 = [1,2,3] lst2 = lst1 ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- C#集合基础与运用
C#集合基础与运用 C#集合基础与运用 1. 集合接口与集合类型............................................... 1 (1) 集合的命名空间..... ...
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- CUDA cufftPlanMany的用法_31通道32*8像素的FFT
#include <cufft.h> #include <iostream> #include <cuda_runtime.h> #include <help ...
- B - Big String
We will construct an infinitely long string from two short strings: A = "^__^" (four chara ...
- java 注释annotation学习---两篇不错的blog
深入理解Java:注解(Annotation)自定义注解入门 ---- http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理 ...
- [leetcode 14]Longest Common Prfix
1 题目: Write a function to find the longest common prefix string amongst an array of strings. Hide Ta ...
- c# List使用中遇到的问题
最近在项目上写的方法,想通过减少访问数据层,将需要重复调用的值存入List,无意中碰到的一个巨坑,至今仍不明所以,在此写出来,一来是看看有没有同道中人,二来是看看有没有大牛能解惑. 逻辑如下: 1.从 ...
- urllib2 的get请求与post请求
urllib2默认只支持HTTP/HTTPS的GET和POST方法 urllib.urlencode() urllib和urllib2都是接受URL请求的相关参数,但是提供了不同的功能.两个最显著的不 ...
- XSS钓鱼某网约车后台一探究竟,乘客隐私暴露引发思考
i春秋作家:onls辜釉 最近的某顺风车命案,把网约车平台推上了风口浪尖,也将隐私信息管理.审查的讨论面进一步扩大.这让我不禁联想起自己今年春节的遭遇,当时公司放假准备回家过年,我妈给我推荐了一个在我 ...
- CentOS 安装Weblogic并配置 domain
CentOS 安装Weblogic并配置 domain 1.创建用户组 [root@localhost weblogic]# groupadd weblogic 2.创建 tmn 用户 [root@l ...
- 【disruptor】1、关于disruptor中的SequenceBarrier对象
首先这个类的uml结构在disruptor中是这样的,里面只有部分的属性对象和函数内容,具体有什么作用,用到了再说,用不到我也不会... 1.那么这个对象有什么用呢? 注意我们这个类中有哪些属性: 我 ...
- odoo开发笔记 -- odoo web机制浅析
http://blog.csdn.net/M0relia/article/details/39025947