Для быстрого побега я использую такие вещи:
скажем, вы хотите объединить str1, str2 и str3
что я делаю это:
delimitedStr=str1.Replace("@","@a").Replace("|","@p")+"|"+str2.Replace("@","@a").Replace("|","@p")+"|"+str3.Replace("@","@a").Replace("|","@p");
затем, чтобы восстановить исходное использование:
splitStr=delimitedStr.Split("|".ToCharArray());
str1=splitStr[0].Replace("@p","|").Replace("@a","@");
str2=splitStr[1].Replace("@p","|").Replace("@a","@");
str3=splitStr[2].Replace("@p","|").Replace("@a","@");
примечание: важен порядок замены
его небьющийся и простой в реализации