Так как все это сделано со многими одиночными блоками "если", я предполагаю, что все случаи могут происходить одновременно.Еще одна вещь, которую следует учитывать, заключается в том, что все функции имеют в основном различную логику, поэтому трудно найти общий язык для ее рефакторинга.
Лучшая идея, которую я имею до сих пор, это использовать словарь, который содержит слово для сопоставления и функцию для выполнения, это сделает его (вроде) масштабируемым, и код будет проще:
Dictionary<string, Func<string,string>> myDict = new Dictionary<string, Func<string, string>>()
{
{"one", ExecuteCodeOne },
{"two", ExecuteCodeTwo },
{"three", ExecuteCodeThree },
{"four", ExecuteCodeFour },
{"five", ExecuteCodeFive },
};
Затем вы можете зациклить словарь и применить все варианты:
List<string> toReplaceList = new List<string>();
List<string> result = new List<string>();
foreach(string test in toReplaceList)
{
string temp = test;
foreach (KeyValuePair<string, string> kv in myDict)
{
if (temp.Contains(kv.Key))
temp = kv.Value(temp);
}
result.Add(temp);
}
Не отлично, но все же лучше.Надеюсь, это поможет.