【问题标题】:command line arguments array命令行参数数组
【发布时间】:2010-11-03 06:14:32
【问题描述】:

我有一个像这样的命令行参数,我需要像这样得到两个,这怎么可能

应用程序ID =1;名字=2

我喜欢在单个数组中获取两个值 1,2 如何做到这一点。

【问题讨论】:

  • 您可能可以通过澄清问题来帮助我们...不是 100% 清楚 args 的外观或您想要做什么

标签: c# command-line


【解决方案1】:

这对我来说并不完全清楚,但我会假设这些论点实际上是:

 ApplicationId=1 Name=2

由于系统如何拆分参数,间距等很重要。在 Main(string[] args) 方法中,这将是一个长度为 2 的数组。您可以将其处理为字典:

    static void Main(string[] args) {
        Dictionary<string, string> options = new Dictionary<string, string>();
        foreach (string arg in args)
        {
            string[] pieces = arg.Split('=');
            options[pieces[0]] = pieces.Length > 1 ? pieces[1] : "";
        }

        Console.WriteLine(options["Name"]); // access by key

        // get just the values
        string[] vals = new string[options.Count];
        options.Values.CopyTo(vals, 0);
    }

【讨论】:

  • 是的,这就是我为需要命名参数的实用程序所做的。
【解决方案2】:

631410491595 提到了一些不错的库。我个人用过sixlettervariables提到的WPF TestAPI库,确实不错

【讨论】:

    【解决方案3】:

    试试

    string values = "ApplicationId =1; Name =2";
    string[] pairs = values.Split(';');
    
    string value1 = pairs[0].Split('=')[1];
    string value2 = pairs[1].Split('=')[1];
    

    当然,您需要更好的错误检查,但 value1 和 value2 应该分别为“1”和“2”

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2013-02-14
      相关资源
      最近更新 更多