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)