簡體   English   中英

用列表填充字典

[英]Fill dictionary with lists

我有2個列表和1個字典:

List<string> A;
List<string> B;
Dictionary<string, string> AB;

我想用2個列表填充字典,其中每個成員的值將是它來自的列表的名稱。

例如 :
("from list A", "A")
("from list A", "A")
("from list B", "B")

我這樣做的方式很長,我想要一個更棘手的解決方案:

 //Loop on A
  foreach (string item in A )
    {
        AB.Add(item, "A");
    }   

//Loop on B 
 foreach (string item in B )
     {
        AB.Add(item, "B");
     }  

有任何想法嗎?

您的解決方案看起來很好!

如果您希望實現更短的代碼,可以使用List.ForEach擴展,如下所示:

A.ForEach(x => AB.Add(x, "A"));
B.ForEach(x => AB.Add(x, "B"));

哦,您可能想要考慮使用列表元素計數的總和來初始化字典。

您當然可以使用Linq:

var AB = A.Select(e => new { Key = e, Value = "A" }).Union(
         B.Select(e => new { Key = e, Value = "B" }) )
        .ToDictionary(e => e.Key, e => e.Value);

但它並不是那么短或更清楚。

暫無
暫無

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

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