[英]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.