Зависит от ожидаемого содержимого строки.Если ожидаемые строки могут иметь непечатаемые символы, то, возможно, нет.Другой способ - избавиться от строк, которые вы собираетесь разделить, это выглядит как дополнительная работа, но может быть помещено в многоразовый помощник:
var string1 = "string|1";
var string2 = "string |2";
var string3 = "string| 3";
var string4 = "string | 4";
var stringToSplit = MergeStrings(string1, string2, string3, string4);
var results = SplitString( stringToSplit );
foreach(string result in results)
{
Trace.WriteLine( result );
}
, который использует следующие методы.
public string MergeStrings(params string[] strings)
{
var stringBuilder = new StringBuilder();
foreach(var s in strings)
{
stringBuilder.Append( s.Replace( "|", "||" ) );
stringBuilder.Append( " | " );
}
return stringBuilder.ToString();
}
public IEnumerable<string> SplitString(string stringToSplit)
{
var results = stringToSplit.Split( new[] { " | " }, StringSplitOptions.RemoveEmptyEntries );
return results.Select( result => result.Replace( "||", "|" ) );
}
Возможно, вы захотите сделать символ разделителя настраиваемым.