LINQ基础—UNION子句

作者:谁偷走了我的奶酪2024.01.17 14:44浏览量:17

简介:介绍LINQ中的UNION子句,如何使用UNION子句合并两个或多个序列,并说明UNION子句与Concat和Union的区别。

在LINQ中,UNION子句用于合并两个或多个序列。它返回一个包含所有输入序列中的唯一元素的序列,即不重复的元素。UNION子句可以用于集合、数组、列表等数据类型。
以下是使用UNION子句的示例代码:

  1. var sequence1 = new List<int> { 1, 2, 3 };
  2. var sequence2 = new List<int> { 3, 4, 5 };
  3. var unionResult = sequence1.Union(sequence2);
  4. foreach (var item in unionResult)
  5. {
  6. Console.WriteLine(item);
  7. }

输出结果为:1, 2, 3, 4, 5。
UNION子句与Concat和Union的区别:

  • UNION子句返回一个包含所有输入序列中的唯一元素的序列,即不重复的元素。
  • Concat子句将两个序列直接连接在一起,没有去除重复元素的操作。
  • Union子句与UNION子句类似,但是它支持泛型,可以应用于任何可比较的对象。另外,Union子句需要实现IEqualityComparer接口来定义比较规则。
    在实际应用中,如果你需要合并两个序列并去除重复元素,应优先使用UNION子句。如果需要连接两个序列,并且不关心重复元素,可以使用Concat子句。如果需要合并两个序列,但需要自定义比较规则,可以使用Union子句。