作为一名非 .NET 程序员,我正在寻找与旧的 Visual Basic 函数 left(string, length) 等效的 .NET 。它很懒惰,因为它适用于任何长度的字符串。正如预期的那样, left("foobar", 3) = "foo" 而最有用的是 left("f", 3) = "f"
在 .NET 中,string.Substring(index, length) 对超出范围的所有内容抛出异常。在 Java 中,我总是使用 Apache-Commons lang.StringUtils。在 Google 中,我对字符串函数的搜索并不多。

@Noldorin - 哇,谢谢你的 VB.NET 扩展!我的第一次遇到,虽然我花了几秒钟在 C# 中做同样的事情:

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# extensions on MSDN

最佳答案

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

<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"

关于c# - .NET 等效于旧的 vb left(string, length) 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/844059/

10-15 03:53