27

MyTool.exe というコンソール アプリケーションがあります。

このコンソール アプリケーションに渡された名前付き引数を収集し、それらをDictionarty<string, string>()キーとして引数名、引数として値を持つ に配置する最も簡単な方法は何ですか?

例えば:

MyTool foo=123432 bar=Alora barFoo=45.9

次のような辞書を取得できるはずです。

MyArguments["foo"]=123432 
MyArguments["bar"]="Alora"
MyArguments["barFoo"]="45.9"
4

4 に答える 4

13

最も簡単な方法でこれを行う方法は次のとおりです。

    static void Main(string[] args)
    {
        var arguments = new Dictionary<string, string>();

        foreach (string argument in args)
        {
            string[] splitted = argument.Split('=');

            if (splitted.Length == 2)
            {
                arguments[splitted[0]] = splitted[1];
            }
        }
    }

ご了承ください:

  • 引数名は大文字と小文字が区別されます
  • 同じ引数名を複数回指定してもエラーは発生しません
  • スペースは使用できません
  • 1 つの = 記号を使用する必要があります
于 2012-07-13T16:59:54.280 に答える
0

このコードがなぜ悪いのかわかりませんか?ホバ?

        var arguments = new Dictionary<string, string>();
        foreach (var item in Environment.GetCommandLineArgs())
        {
            try
            {
                var parts = item.Split('=');
                arguments.Add(parts[0], parts[1]);
            }
            catch (Exception ex)
            {
                // your error handling here....
            }
于 2012-08-02T07:28:49.847 に答える