【发布时间】:2010-11-03 06:14:32
【问题描述】:
我有一个像这样的命令行参数,我需要像这样得到两个,这怎么可能
应用程序ID =1;名字=2
我喜欢在单个数组中获取两个值 1,2 如何做到这一点。
【问题讨论】:
-
您可能可以通过澄清问题来帮助我们...不是 100% 清楚 args 的外观或您想要做什么
标签: c# command-line
我有一个像这样的命令行参数,我需要像这样得到两个,这怎么可能
应用程序ID =1;名字=2
我喜欢在单个数组中获取两个值 1,2 如何做到这一点。
【问题讨论】:
标签: c# command-line
这对我来说并不完全清楚,但我会假设这些论点实际上是:
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);
}
【讨论】:
631410 和 491595 提到了一些不错的库。我个人用过sixlettervariables提到的WPF TestAPI库,确实不错
【讨论】:
试试
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”
【讨论】: