Linq Concat Union Intersect 区别

本文详细介绍了LINQ中Concat、Union及Intersect方法的用法,通过实例对比了这三个方法在处理序列时的区别,Concat用于合并序列,Union去除重复项合并,Intersect则找出序列间的交集。


Concat  :连连接两个序列。 http://msdn.microsoft.com/zh-cn/library/bb351755(v=vs.90).aspx

Union  : 通过使用默认的相等比较器生成两个序列的并集。http://msdn.microsoft.com/zh-cn/library/bb341731(v=vs.90).aspx

Intersect : 通过使用默认的相等比较器对值进行比较生成两个序列的交集。http://msdn.microsoft.com/zh-cn/library/bb460136(v=vs.90).aspx

通俗一点,可以这样理解:

假设有两序列:

var A=new List<int>{1,1,2,3,4}; 
var B=new List<int>{4,5,5,6,7};

那么A.Concat(B) 表示将A序列和B序列串联起来,以创建新的序列,不去除重复部分;

A.Union(B)表示将A序列和B序列串联起来,并去除重复部分,以创建新的序列;

而A.Intersect(B) 只取A序列和B序列相同的部分(交集),以创建新的序列。

示例代码:

void Main() 

    
var A=new List<int>{1,1,2,3,4}; 
    
var B=new List<int>{4,5,5,6,7}; 
     
    Print(A.Concat(B).ToList()); 
    Print(A.Union(B).ToList()); 
    Print(A.Intersect(B).ToList()); 
     
    
/* 
    ********A.Concat(B)************ 
    1 
    1 
    2 
    3 
    4 
    4 
    5 
    5 
    6 
    7 
    ********************************* 
     
    *********A.Union(B)*********** 
    1 
    2 
    3 
    4 
    5 
    6 
    7 
    ********************************* 
     
    *********A.Intersect(B)*********** 
    4 
    ********************************* 
    */
 

void Print(List<int> list) 

  list.ForEach(l=>Console.WriteLine(l)); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值