首页 / 教程列表 / LINQ教程 / LINQ操作符之Concat

LINQ操作符之Concat

450 更新于: 2023-01-16 读完约需 5 分钟

概述

在这篇文章中,我将用一些例子来讨论C#中Linq的Concat方法。C#中Linq的Concat方法用于将两个序列连接成一个序列。此方法只有一个重载方法,其签名如下所示:

Concat示例一

在下面的示例中,我们创建了两个整数序列,然后使用Concat操作符将两个序列连接成一个序列:

namespace LinqTutorial
{
    public class Program
    {
        static void Main(string[] args)
        {
            var sequence1 = new[] { 1, 2, 3, 4 };
            var sequence2 = new[] { 2, 4, 6, 8 };
            var result = sequence1.Concat(sequence2);
            foreach (var item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}

运行结果:

从上面的输出结果可以看到,C#中Linq的Concat方法将sequence1sequence2两个序列的元素连接到了一个序列。

注:Concat方法不会删除重复的元素。

Concat示例二

在下面的示例中,第二个序列sequence2null,在使用Concat操作符执行连接操作时,它将抛出异常:

namespace LinqTutorial
{
    public class Program
    {
        static void Main(string[] args)
        {
            var sequence1 = new[] { 1, 2, 3, 4 };
            List<int> sequence2 = null;
            var result = sequence1.Concat(sequence2);
            foreach (var item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}

抛出如下异常:

Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'second')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Linq.Enumerable.Concat[TSource](IEnumerable`1 first, IEnumerable`1 second)
   at LinqTutorial.Program.Main(String[] args) in D:\Project\tmp\dotnet\LinqTutorial\LinqTutorial\Program.cs:line 9

Concat方法只能连接同一数据类型的序列,不同数据类型序列间不能使用Concat方法,如下使用编译器会报错:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » LINQ教程 » LINQ操作符之Concat 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册