Linq 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));
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值