using System.Collections.Generic;
using System.Text.RegularExpressions;
public static class Program
private static string parseTaxonomyField(string valStr)
valStr = string.Join(";", valStr.Split(new [] {';'}, StringSplitOptions.RemoveEmptyEntries).Where(x => x.Contains("#") && x.Contains("|")).Select(s => s.Replace("#", string.Empty)));
valStr = string.Join(",", valStr.Split(new [] {';'}, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Substring(0, x.IndexOf('|'))));
private static void updateTaxonomyFieldsInDictionary(Dictionary<string, string[]> dict, List<string> fields = null)
fields = fields ?? new List<string>();
foreach(string s in fields)
for (int i = 0; i < dict[s].Length; i++)
dict[s][i] = parseTaxonomyField(dict[s][i]);
public static void Main()
Dictionary<string, string[]> myDict = new Dictionary<string, string[]>();
myDict.Add("tax", new[] {"241;#Czech Republic|d7277d38-bce7-4885-903d-5857d0752ddf;#459;#Slovakia|17a14aed-85c0-40ee-b47f-78c0f2b2dce0", "Czech Republic|d7277d38-bce7-4885-903d-5857d0752ddf;Poland|6ea11f3e-8588-40fb-b3e0-76d20d0681eb;Slovakia|17a14aed-85c0-40ee-b47f-78c0f2b2dce0"});
string[] dupa = new string[] {"dupa", "dupa2"};
var str1="241;#Czech Republic|d7277d38-bce7-4885-903d-5857d0752ddf;#459;#Slovakia|17a14aed-85c0-40ee-b47f-78c0f2b2dce0";
var str2 = "Czech Republic|d7277d38-bce7-4885-903d-5857d0752ddf;Poland|6ea11f3e-8588-40fb-b3e0-76d20d0681eb;Slovakia|17a14aed-85c0-40ee-b47f-78c0f2b2dce0";
Console.WriteLine(myDict["tax"][0]);
Console.WriteLine(myDict["tax"][1]);
updateTaxonomyFieldsInDictionary(myDict, new List<string> {"tax"});
Console.WriteLine(myDict["tax"][0]);
Console.WriteLine(myDict["tax"][1]);
Console.WriteLine(parseTaxonomyField(""));
List<string> oko = new List<string>();