[英]c# dictionary how to add data from a delimited list of strings with repeated values for a single keyinto a dictionary
我正在嘗試從字符串列表創建一個字典,其中每個字符串都包含定界符分隔的值。 有很多重復的值,所以我需要一個帶有多個值的鍵
我已經嘗試創建Dictionary<string, List<string>>
但這不起作用
每個字符串就像
values = Man: rev
sum:2
Man: rev2
sum:2
值是字符串列表
var d = new Dictionary<string, List<string>>();
foreach(var l in values)
{
var b = l.Split(':');
var k = b.ElementAtOrDefault(0);
if (!d.ContainsKey(k))
d.Add(k, new List<string>());
d[k].Add(l);
}
當我嘗試使用上述方法搜索字典時,無法檢索特定鍵的值
根據提供的注釋,我建議使用以下結構(我目前無法測試代碼,但可以在需要時對其進行修復):
Dictionary<string,string> result = values
.Select(v => v.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries)
.ToLookup(arr => arr.FirstOrDefault(), arr => String.Concat(arr.Skip(1))
.ToDictionary(g => g.Key, g => String.Join(", ", g.Select(i => i.Trim());
說明:首先選擇進行拆分; ToLookup使用第一個元素作為鍵並使用值字符串的其余部分作為項目來創建>結構(在原始問題中添加了整個字符串-我不確定這是否是意圖); 然后,ToDictionary將List轉換為字符串(基於注釋,因為所需的輸出似乎是Distionary)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.