using System.Collections.Generic;
public IEnumerable<FileInfo> Inputs { get; set; }
[Option("sign-with", Required = false, Separator=',')]
public IEnumerable<FileInfo> SignWith { get; set; } = new List<FileInfo>();
[Option("encrypt", Required = false, Separator=',')]
public IEnumerable<FileInfo> Encrypt { get; set; } = new List<FileInfo>();
string[] arguments = new string[]{"--sign-with", "/aaa/bbb/a", "--sign-with", "b", "--encrypt", "c.asc", "--encrypt", "d.pgp", "--", "e.asc"};
for(i=arguments.Length-1; i>=0; --i)
if (arguments[i].Equals("--"))
if (arguments[i].StartsWith("--"))
foreach (var arg in arguments)
using Parser parser = new(settings =>
settings.GetoptMode = true;
settings.AllowMultiInstance = true;
settings.EnableDashDash = true;
settings.CaseInsensitiveEnumValues = true;
settings.PosixlyCorrect = true;
parser.ParseArguments<Options>(arguments)
.WithParsed<Options>(o =>
Console.WriteLine("SignWith");
foreach(var s in o.SignWith)
Console.WriteLine(s.FullName);
Console.WriteLine("Encrypt");
foreach (var s in o.Encrypt)
Console.WriteLine(s.FullName);
Console.WriteLine("Inputs");
foreach (var s in o.Inputs)
Console.WriteLine(s.FullName);
}).WithNotParsed(errors =>
foreach (var s in errors)