gpt4 book ai didi

c# - 如何在 C# 中使用 NDesk 选项解析简单的项目列表

转载 作者:太空狗 更新时间:2023-10-30 00:25:23 25 4
gpt4 key购买 nike

我是 NDesk.Options 库的新手。无法找出解析简单项目列表的最简单方法。

例子: prog --items=item1 item2 item3 (我想在代码中使用List items)

它应该支持引用以及我想使用项目列表作为文件或目录名称的列表。

prog --items="c:\a\b\c.txt""c:\prog files\d.txt" prog --dirs="c:\prog files\""d:\x\y\space in dirname"

最佳答案

您可以使用“<>”输入,表示没有标志与输入关联。由于选项是从左到右读取的,因此您可以在遇到起始标志时设置“currentParameter”标志,并假设没有标志的任何后续输入都是列表的一部分。这是一个示例,我们可以指定一个列表作为输入文件,以及一个字典(参数),它是一个键值对列表。当然也可以使用其他变体。

OptionSet options = new OptionSet()
{
{"f|file", "a list of files" , v => {
currentParameter = "f";
}},
{"p", @"Parameter values to use for variable resolution in the xml - use the form 'Name=Value'. a ':' or ';' may be used in place of the equals sign", v => {
currentParameter = "p";
}},
{ "<>", v => {
switch(currentParameter) {
case "p":
string[] items = v.Split(new[]{'=', ':', ';'}, 2);
Parameters.Add(items[0], items[1]);
break;
case "f":
Files.Add(Path.Combine(Environment.CurrentDirectory, v));
break;
}
}}
};
options.Parse(args);

关于c# - 如何在 C# 中使用 NDesk 选项解析简单的项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com