下面是关于C# Linq的Union()的完整攻略。
1. Union()方法概述
在C# Linq中,Union()
方法用于返回两个序列的并集,并且保留相同的元素只出现一次,即去重。
Union()
方法的语法如下:
public static IEnumerable<TSource> Union<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second
);
其中,first
表示第一个序列,second
表示第二个序列。
2. Union()方法示例
示例1
我们有两组数字,分别为a组和b组,如下所示:
int[] a = { 1, 2, 3, 4 };
int[] b = { 3, 4, 5, 6 };
我们可以使用Union()
方法将这两个数组合并,代码如下:
var result = a.Union(b);
foreach (var item in result)
{
Console.WriteLine(item);
}
输出结果为:
1
2
3
4
5
6
注意,Union()
方法去除了两组数字中相同的元素3
和4
,只保留了一次。
示例2
我们有两组学生,分别为a组和b组,如下所示:
List<Student> a = new List<Student>()
{
new Student() { Id = 1, Name = "小明" },
new Student() { Id = 2, Name = "小红" },
new Student() { Id = 3, Name = "小刚" },
new Student() { Id = 4, Name = "小美" },
};
List<Student> b = new List<Student>()
{
new Student() { Id = 3, Name = "小刚" },
new Student() { Id = 4, Name = "小美" },
new Student() { Id = 5, Name = "小花" },
new Student() { Id = 6, Name = "小李" },
};
我们可以使用Union()
方法将这两组学生合并,代码如下:
var result = a.Union(b);
foreach (var item in result)
{
Console.WriteLine($"学号:{item.Id},姓名:{item.Name}");
}
输出结果为:
学号:1,姓名:小明
学号:2,姓名:小红
学号:3,姓名:小刚
学号:4,姓名:小美
学号:5,姓名:小花
学号:6,姓名:小李
注意,Union()
方法合并了两组学生信息,去除了相同的Id
为3
和4
的学生,只保留了一次。