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