c # przekierowanie (potok) danych wyjściowych procesu do innego procesu

Próbuję uruchomić proces w c # za pomocą klasy Process.

Process p1  = new process();
p1.startinfo.filename =  "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();

Bazując na danych wprowadzanych przez użytkownika, buduję wartość argumentu. Teraz mam przypadek, w którym muszę potokować wyjście p1 do innego procesu say grep. więc zasadniczo tego spróbowałem

p1.startinfo.arguments = "-info | grep 1234";

zamierzałem coś takiego jak xyz.exe -info | grep 1234

ale to nie wydaje się działać w .net .. Mogę faktycznie utworzyć inną zmienną procesową i uruchomić "grep" jako oddzielny proces .. Ale zastanawiałem się, czy jest jakikolwiek sposób, jak próbuję powyżej.

questionAnswers(1)

yourAnswerToTheQuestion