作为一名非 .NET 程序员,我正在寻找旧 Visual Basic 函数的 .NET 等效项left(string, length)left("foobar", 3) = "foo"同时,最有帮助的是,left("f", 3) = "f"

在.NET中string.Substring(index, length)对超出范围的所有内容抛出异常。


@Noldorin- 哇,谢谢您的 VB.NET 扩展!

public static class Utils
{
    public static string Left(this string str, int length)
    {
        return str.Substring(0, Math.Min(length, str.Length));
    }
}

注意静态类和方法以及this关键词。"foobar".Left(3)C

答案

这是一个可以完成这项工作的扩展方法。

<System.Runtime.CompilerServices.Extension()> _
Public Function Left(ByVal str As String, ByVal length As Integer) As String
    Return str.Substring(0, Math.Min(str.Length, length))
End Function

这意味着您可以像旧的 VB 一样使用它Left函数(即Left("foobar", 3))或使用较新的 VB.NET 语法,即

Dim foo = "f".Left(3) ' foo = "f"
Dim bar = "bar123".Left(3) ' bar = "bar"

来自: stackoverflow.com