我想编写一个具有不同行为的控制台应用程序,具体取决于输入是来自键盘还是来自文件.
可能吗?在C#中最优雅的方法是什么?
我希望我的应用程序从命令行参数或标准输入指定的文件中读取,因此用户可以使用它myprogram.exe data.txt或otherprogram.exe | myprogram.exe.我怎么能在C#中做到这一点?
在Python中,我会写
import fileinput
for line in fileinput.input():
process(line)
Run Code Online (Sandbox Code Playgroud)
这将迭代sys.argv [1:]中列出的所有文件的行,如果列表为空,则默认为sys.stdin.如果文件名是' - ',它也会被sys.stdin替换.
Perl <>和Ruby's ARGF同样有用.