Return int.TryParse 中使用 LINQ 从字符串列表中声明的输出变量
Return the declared out variable in int.TryParse with LINQ from a list of strings
我有这样的字符串:
/Location/12345/
但我只需要 12345 这个号码。
以下函数returns 号码:
private int GetNumberFromString(string location = "/Location/12345/")
{
var id = 0;
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
strings.FirstOrDefault(t => int.TryParse(t, out id));
return id;
}
我想做这样的事情:
private int GetNumberFromString(string location = "/Location/12345/")
{
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
return strings.FirstOrDefault(t => int.TryParse(t, out var id));
}
但是 returns string 而不是 int.
那么是否可以在int.TryParse和return中立即声明变量id?或者对此有更好的解决方案吗?
我确定这不是最佳解决方案,但它确实有效。
private int GetNumberFromStringLinq(string location = "/Location/12345/")
{
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(strings.FirstOrDefault(t => int.TryParse(t, out var id)));
}
使用正则表达式 ?
return int.Parse(new Regex("\d+").Match("/location/1234/").Groups[0].Value)
我有这样的字符串:
/Location/12345/
但我只需要 12345 这个号码。
以下函数returns 号码:
private int GetNumberFromString(string location = "/Location/12345/")
{
var id = 0;
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
strings.FirstOrDefault(t => int.TryParse(t, out id));
return id;
}
我想做这样的事情:
private int GetNumberFromString(string location = "/Location/12345/")
{
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
return strings.FirstOrDefault(t => int.TryParse(t, out var id));
}
但是 returns string 而不是 int.
那么是否可以在int.TryParse和return中立即声明变量id?或者对此有更好的解决方案吗?
我确定这不是最佳解决方案,但它确实有效。
private int GetNumberFromStringLinq(string location = "/Location/12345/")
{
var strings = location.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(strings.FirstOrDefault(t => int.TryParse(t, out var id)));
}
使用正则表达式 ?
return int.Parse(new Regex("\d+").Match("/location/1234/").Groups[0].Value)