División de cadena C #

Si tengo una cadena:str1|str2|str3|srt4 y analizarlo con| como delimitador Mi salida seríastr1 str2 str3 str4.

Pero si tengo una cadena:str1||str3|str4 la salida seríastr1 str3 str4. Lo que estoy buscando para que sea mi salida esstr1 null/blank str3 str4.

Espero que esto tenga sentido.

string createText = "srt1||str3|str4";
string[] txt = createText.Split(new[] { '|', ',' },
                   StringSplitOptions.RemoveEmptyEntries);
if (File.Exists(path))
{
    //Console.WriteLine("{0} already exists.", path);
    File.Delete(path);
    // write to file.

    using (StreamWriter sw = new StreamWriter(path, true, Encoding.Unicode))
    {
        sw.WriteLine("str1:{0}",txt[0]);
        sw.WriteLine("str2:{0}",txt[1]);
        sw.WriteLine("str3:{0}",txt[2]);
        sw.WriteLine("str4:{0}",txt[3]);
    }
}
Salida
str1:str1
str2:str3
str3:str4
str4:"blank"

Eso no es lo que estoy buscando. Esto es lo que me gustaría codificar:

str1:str1
str2:"blank"
str3:str3
str4:str4

Respuestas a la pregunta(4)

Su respuesta a la pregunta