Redirecionando stdout de um objeto de processo para stdin de outro

Como posso configurar dois executáveis ​​externos para executar a partir de um aplicativo c # onde stdout do primeiro é roteado para stdin do segundo?

Eu sei como executar programas externos usando o objeto Process, mas não vejo uma maneira de fazer algo como "myprogram1-algumas -options | myprogram2 -some -options". Também precisarei pegar o stdout do segundo programa (myprogram2 no exemplo).

No PHP eu apenas faria isso:

$descriptorspec = array(
            1 => array("pipe", "w"),  // stdout
        );

$this->command_process_resource = proc_open("myprogram1 -some -options | myprogram2 -some -options", $descriptorspec, $pipes);

E $ pipes [1] seria o stdout do último programa da cadeia. Existe uma maneira de conseguir isso em c #?

questionAnswers(3)

yourAnswerToTheQuestion