LINQ系列:Linq to Object串聯操作符

libingql發表於2014-10-22

  串聯是一個將兩個物件聯接在一起的過程。在LINQ中,串聯操作將兩個集合合併成一個集合,通過Concat操作符實現。

Concat

1>. 原型定義

public static IQueryable<TResult> Cast<TResult>(this IQueryable source);
public static IQueryable<TSource> Concat<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);

2>. 示例

var expr = context.Categories
    .Select(c => c.CategoryName)
    .Concat(
        context.Products
        .Select(p => p.ProductName)
    );

foreach (var item in expr)
{
    Console.WriteLine(item);
}

  若兩個序列或集合中存在相同的元素,Concat會合並全部的元素,不會排除相同的元素。

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var allNumbers = numbersA.Concat(numbersB); // {0, 2, 4, 5, 6, 8, 9, 1, 3, 5, 7, 8}

相關文章