using System.Collections.Generic;
public static void Main()
string dimensionString= "LE:720;AF:540";
if (!string.IsNullOrEmpty(model))
codes = codes.Substring(0, codes.IndexOf(model) - 1);
Console.WriteLine(codes);
var dic = codes.Split('-');
foreach (var item in dic)
if (!string.IsNullOrEmpty(model + dimensionString))
Console.WriteLine(model + dimensionString);
if (!string.IsNullOrEmpty(dimensionString))
var dict = dimensionString.Split(';').Select(x => x.Split(':')).ToDictionary(x => x[0], x => x[1]);
if (dict.ContainsKey("AE"))
Console.WriteLine("Key:{0} Value:{1}", "AE", dict["AE"]);
if (dict.ContainsKey("LE"))
Console.WriteLine("Key:{0} Value:{1}", "LE", dict["LE"]);
if (dict.ContainsKey("LC"))
Console.WriteLine("Key:{0} Value:{1}", "LC", dict["LC"]);
if (dict.ContainsKey("PE"))
Console.WriteLine("Key:{0} Value:{1}", "PE", dict["PE"]);
if (dict.ContainsKey("PF"))
Console.WriteLine("Key:{0} Value:{1}", "PF", dict["PF"]);
codes = RemoveLastElement(dict, codes);
Console.WriteLine("Final:{0}", codes);
public static string RemoveLastElement(Dictionary<string, string> dict, string codes)
var codesCollection = codes.Split('-');
foreach (var item in dict)
if (codesCollection[codesCollection.Count() - 1] == item.Value)
codesCollection = codesCollection.Take(codesCollection.Count() - 1).ToArray();
result = RemoveLastElement(dict, string.Join("-", codesCollection));