я получил строку как, A:<<Default>>;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:<<Default>>
[шаблон строка]Строка манипуляции с #
Представление строки, как ключ словаря: значение, которое группируется в виде строки с запятой в качестве разделителя.
Теперь после применения логики, я получаю список строк ниже,
A:aaa;E:eee
D:ddd
B:bbb;E:eee
Теперь мне нужно сделать, приведенный выше список как один ниже (где ключ с новым значением должны быть размещены в правильном порядке и имеющий оставшиеся ключи со значениями по умолчанию),
A:aaa;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:eee
A:<<Default>>;B:<<Default>>;C:<<Default>>;D:ddd;E:<<Default>>
A:<<Default>>;B:bbb;C:<<Default>>;D:<<Default>>;E:eee
Пробная функция разделения, Замените и преобразуйте в список для достижения этой цели. Есть ли у нас эффективный способ добиться того же?
string constants = "A:<<Default>>;B:<<Default>>;C:<<Default>>;D:<<Default>>;E:<<Default>>";
string placeHolder = string.Empty;
List<string> filteredkeys = new List<string>();
List<string> formattedKeys = new List<string>();
filteredkeys.Add("A:aaa;E:eee;");
filteredkeys.Add("D:ddd;");
filteredkeys.Add("B:bbb;E:eee;");
foreach (var item in filteredkeys)
{
placeHolder = constants;
List<string> keyCombination = item.TrimEnd(';').Split(';').ToList();
foreach (string keys in keyCombination)
{
List<string> abc = keys.Split(':').ToList();
switch (abc[0])
{
case "A":
placeHolder = placeHolder.Replace("A:<<Default>>", keys);
break;
case "B":
placeHolder = placeHolder.Replace("B:<<Default>>", keys);
break;
case "C":
placeHolder = placeHolder.Replace("C:<<Default>>", keys);
break;
case "D":
placeHolder = placeHolder.Replace("D:<<Default>>", keys);
break;
case "E":
placeHolder = placeHolder.Replace("D:<<Default>>", keys);
break;
}
}
formattedKeys.Add(placeHolder);
}
Что .NET вы используете (3,5, 4, 4,5 ...)? – Dialecticus
Что случилось с Split? – slawekwin
@fubo обновлен с куском кода, проверенным с помощью foreach & Switch case. Спасибо, что посмотрели на это :) – Programming