【问题标题】:static void Main(string[] args) [closed]static void Main(string[] args) [关闭]
【发布时间】:2013-06-03 17:25:09
【问题描述】:

控制台应用程序static void Main(string[] args)的启动方法, 假设参数传递如下:

helloworld a, b, c, d

从 agrs 中提取 a、b、c 和 d 的最佳方法是什么(没有空格和逗号)?

【问题讨论】:

  • -1:请不要在已发布答案后更改问题的性质。删除引号会使以下所有答案无效。

标签: c# .net parameters console


【解决方案1】:
string[] s = args[0].Split(new char[] { ' ', ',' }, 
                           StringSplitOptions.RemoveEmptyEntries);

【讨论】:

  • args[0] 不是程序名吗?
  • @Dirk no, args[0] 包含第一个参数
  • @Dirk:这是 C 中的程序名称,但不是 .NET。
  • 感谢您的澄清。我认为它会是一样的。
  • 使用参数喜欢这个 "a , b , c, d" args 有 6 个元素 args[0] = "a" args[1] = "," args[2] = "b " args[3] = "," args[4] = "c," args[5] = "d" 我们需要对 args 的所有部分做同样的事情吗?
【解决方案2】:
var elements = args[0].Split(',').Select(s => s.Trim());

【讨论】:

  • 如果元素可以包含需要保留的内部空间,这可能是比我更好的答案。但是,args 应该是 args[0]
  • 谢谢 Douglas,我会做出改变的。
【解决方案3】:

您可以使用Trim() 删除空格,使用Replace() 替换逗号分隔值。

【讨论】:

  • 使用参数喜欢这个 "a , b , c, d" args 有 6 个元素 args[0] = "a" args[1] = "," args[2] = "b " args[3] = "," args[4] = "c," args[5] = "d" 我们需要对 args 的所有部分做同样的事情吗?
  • 非常感谢 foreach(var element in agrs) { if(string.IsNullOrEmpty(element.Trim().Replace(",", string.Empty)) continue; //do something } 是可以吗?
猜你喜欢
  • 2016-05-22
  • 2012-08-10
  • 2016-07-14
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
相关资源
最近更新 更多