NConsoleMenu by Sebastian Heuchler

<PackageReference Include="NConsoleMenu" Version="0.9.0" />

 CMenuItem

public CommandQueue CQ { get; }

public string HelpText { get; set; }

public CMenuItem this[string key] { get; set; }

public CMenuItem MenuItem { get; }

public CMenuItem Parent { get; }

public string Selector { get; set; }

public virtual StringComparison StringComparison { get; set; }

public event Action ResetColor

public event Action<string> Write

public event Action<string> WriteLine

public CMenuItem(string selector, Action<string> execute, string help = null)

public CMenuItem(string selector)

public T Add<T>(T it) where T : CMenuItem

public CMenuItem Add(string selector, string help)

public CMenuItem Add(string selector)

public CMenuItem Add(string selector, Action<string> execute, string help = null)

public IDictionary<string, string> CommandAbbreviations()

public virtual void Execute(string arg)

public void ExecuteChild(string arg)

public CMenuItem GetMenuItem(ref string cmd, out string args, bool complain, bool useDefault, bool includeDisabled)

public virtual bool IsEnabled()

protected void OnResetColor()

protected void OnWrite(string s)

protected void OnWriteLine(string s = null)

public bool Remove(CMenuItem it)

public void SetAction(Action<string> action)

public void SetEnablednessCondition(Func<bool> condition)