C# 解析器是否支持一个选项的多次出现?
我如何支持使用此选项 。这在C# 解析器是否支持一个选项的多次出现?,c#,.net,command-line-parser,C#,.net,Command Line Parser,我如何支持使用此选项 。这在IEnumerable中是可能的: class Program { static void Main(string[] args) { args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" }; Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
IEnumerable
中是可能的:
class Program
{
static void Main(string[] args)
{
args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" };
Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
{
foreach (var target in o.Targets)
{
Console.WriteLine(target);
}
});
Console.ReadKey();
}
}
internal class MyOptions
{
[Option('s')]
public string Source { get; set; }
[Option('t')]
public IEnumerable<string> Targets { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
args=new[]{“-s”、“sourceFile”、“-t”、“targetFile1”、“targetFile2”};
Parser.Default.ParseArguments(args).WithParsed(o=>
{
foreach(o.Targets中的var目标)
{
控制台写入线(目标);
}
});
Console.ReadKey();
}
}
内类肌肽
{
[选项('s')]
公共字符串源{get;set;}
[选项('t')]
公共IEnumerable目标{get;set;}
}
最酷的是,您甚至可以使用FileInfo
和DirectoryInfo
以及CommandLine.Option
属性。这在IEnumerable
中是可能的:
class Program
{
static void Main(string[] args)
{
args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" };
Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
{
foreach (var target in o.Targets)
{
Console.WriteLine(target);
}
});
Console.ReadKey();
}
}
internal class MyOptions
{
[Option('s')]
public string Source { get; set; }
[Option('t')]
public IEnumerable<string> Targets { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
args=new[]{“-s”、“sourceFile”、“-t”、“targetFile1”、“targetFile2”};
Parser.Default.ParseArguments(args).WithParsed(o=>
{
foreach(o.Targets中的var目标)
{
控制台写入线(目标);
}
});
Console.ReadKey();
}
}
内类肌肽
{
[选项('s')]
公共字符串源{get;set;}
[选项('t')]
公共IEnumerable目标{get;set;}
}
最酷的是,您甚至可以使用
FileInfo
和DirectoryInfo
以及CommandLine.Option
属性。您需要两次-t
开关吗?@kapsiR Ha OK,只需使用集合来支持选项即可。谢谢,这就是我要找的。不,我不需要几次明确的回答-t。如果你认为我的答案对你有效的话,那就太好了。您需要两次-t
开关吗?@kapsiR Ha OK,只需使用集合来支持选项即可。谢谢,这就是我要找的。不,我不明确地需要-t几次。如果你将我的答案标记为已接受的答案,如果它对你有效,那就太好了。问题是,你的答案不能解决问题,因为作者要求一个选项应该出现多次,而且-txy
与-tx-ty
不一样,这似乎失败了,即使wiki声明它应该与版本2.9+一起使用。@virustinity:这就是为什么我首先通过评论询问问题的作者;)问题是,你的答案并不能解决这个问题,因为作者要求一个选项应该出现多次,而且-txy
与-tx-ty
不一样,即使wiki声明它应该与版本2.9+一起使用,它似乎也会失败。@virustinity:这就是为什么我通过首先是评论;)