Я не до конца понял задачу, но вроде вот такой код работает:
using System;
using System.Collections.Generic;
using System.Text.Json;
var lines = new[]
{
"1:a",
"1:b",
"2:c",
"3:d",
"3:x",
"biba:boba:buba",
};
var result = ParseContacts(lines);
Console.WriteLine(JsonSerializer.Serialize(result, new JsonSerializerOptions(JsonSerializerDefaults.General)
{
WriteIndented = true
}));
static Dictionary<string, List<string>> ParseContacts(IEnumerable<string> lines)
{
var dict = new Dictionary<string, List<string>>();
foreach (var line in lines)
{
var tokens = line.Split(':', 2);
var id = tokens[0];
var text = tokens[1];
if (dict.ContainsKey(id))
dict[id].Add(text);
else
dict[id] = new List<string> {text};
}
return dict;
}
Этот код выведет
{
"1": [
"a",
"b"
],
"2": [
"c"
],
"3": [
"d",
"x"
],
"biba": [
"boba:buba"
]
}