簡體   English   中英

合並2個列表的最佳方法

[英]Best way to combine 2 lists

我有以下2個清單:

List<string> a = new List<string>()
{
    "a",
    "b"
};

List<string> b = new List<string>()
{
    "c",
    "d"
};

結合ab獲得以下內容的最佳方法是什么:

{
    "ac",
    "ad",
    "bc",
    "bd"
};

是否有使我們能夠執行上述操作的LINQ函數?

我不知道問“最好的方式”是提出問題的最佳方式(因為故意說雙關語),因為通常會有多種方式。

您需要的是遍歷第一個列表,然后對於每個元素,遍歷第二個列表,這樣您就可以找到兩者的每種組合。

一種可能的方法是使用LINQ的SELECT語句:

var combination = a.Select(first => b.Select(second => first + second))
                   .SelectMany(x => x)
                   .ToList();

您也可以只使用幾個嵌套的foreach循環,它們看起來可能不像某些LINQ實現那樣優雅,但很有可能效率很高。

var combination = new List<string>();

foreach(var first in a)
    foreach (var second in b)
        combination.Add(first+second);

可以嘗試:

    List<string> c = new List<string>();

    for(int i=0; i<a.Count; i++){
        for(int j=0; j< b.Count; j++){
            c.Add(a[i]+b[j]);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM