多個List 或 Array 進行 合併

1.調用

var aaa = new List<string>() { "0" };

var a1 = new List<string>() { "1" };
var a2 = new List<string>() { "2" };
var a3 = new List<string>() { "3" };
var a4 = new List<string>() { "4" };
var a5 = new List<string>() { "5" };

var b = aaa.MyConcat(a1, a2, a3, a4, a5);
int count = b.Count();

2.方法

/// <summary>
/// 擴展方法必須在靜態類中
/// </summary>
public static class Test
{
    /// <summary>
    /// 拼接(擴展方法)  只要是 實現了 System.Collections.IEnumerable 接口 的都可以調用. 比如list ,Array 等等,下面的圖片是舉例
    /// </summary> 
    public static IEnumerable<TSource> MyConcat<TSource>(
       this IEnumerable<TSource> thisEnumerable,
       IEnumerable<TSource> one,
       IEnumerable<TSource> two,
       IEnumerable<TSource> three,
       IEnumerable<TSource> four,
       IEnumerable<TSource> five)
    {
        foreach (var item in thisEnumerable) yield return item;
        foreach (var item in one) yield return item;
        foreach (var item in two) yield return item;
        foreach (var item in three) yield return item;
        foreach (var item in four) yield return item;
        foreach (var item in five) yield return item;
        
        //按照實際需求繼續寫下去,也可以 用重載, 
        //System.Linq.Enumerable 類庫中有1個參數的擴展方法,叫做 Concat, 
        //所以 把方法名 寫成Concat 然後 寫出 23456個參數的擴展方法.就可以了.
    }
}
舉例

在這裏插入圖片描述

3.結果

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章