概述
在这篇文章中,我将用一些例子来讨论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
方法将sequence1
和sequence2
两个序列的元素连接到了一个序列。
注:
Concat
方法不会删除重复的元素。
Concat示例二
在下面的示例中,第二个序列sequence2
为null
,在使用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
方法,如下使用编译器会报错:
发表评论
登录用户才能发表评论, 请 登 录 或者 注册