当元素不存在时,如何从数组编写赋值默认值
本文关键字:数组 赋值 默认值 不存在 元素 | 更新日期: 2023-09-27 18:19:03
这种情况一直困扰着我。例如,假设控制台应用程序期望filepath in作为命令行参数。
string first = args[0];
,但如果没有参数,则会发生错误。我想我可以这样做:
string first = (args[0]!=null) ? args[0] : "c:'";
我想要的是一些更优雅的东西,比如:
string first = (MyTryParse(args[0],"c:'");
我可以把它写为一个扩展,但是这不起作用,因为args[0]会在方法被调用之前抛出异常。
检查args[0]
是否为空:
public string MyTryParse(string[] args, int index, string defaultVal)
{
return index < args.Length ? (args[index] ?? defaultVal) : defaultVal
}
...
string first = MyTryParse(args, 0, "c:'");
相同的方法,但使用extension
方法,
public static class Extensioin
{
public static string MyTryParse(this string[] args, string defaultVal)
{
return args.Length > 0 ? args[0] : defaultVal;
}
}
然后像这样使用上面的方法,
string first = args.MyTryParse(@"c:'");
通过args
而不是args[0]
试试这样
public string MyTryParse(string[] args, string defaultVal) {
return args.Length > 0 ? args[0] : defaultVal
}
LINQ已经有了DefaultIfEmpty
方法:
string first = args.DefaultIfEmpty("c:''").First();