C#中的正确功能?

Neo*_*Neo 3 c#

在VB中有一个名为Right的函数,它返回一个字符串右侧包含指定数量字符的字符串.

在C#中是否有类似的功能可以做同样的事情?

谢谢.

Chi*_*gum 24

更新:如下面的评论所述,如果字符串短于请求的长度(Right()在VB.net中没有),我之前的答案将失败.所以我稍微更新了一下.

在C#中没有类似的方法,但您可以使用以下扩展方法添加它Substring():

static class Extensions
{
    /// <summary>
    /// Get substring of specified number of characters on the right.
    /// </summary>
    public static string Right(this string value, int length)
    {
        if (String.IsNullOrEmpty(value)) return string.Empty;

        return value.Length <= length ? value : value.Substring(value.Length - length);
    }
}
Run Code Online (Sandbox Code Playgroud)

提供的方法是从DotNetPearls复制的,你可以在那里获得额外的信息.


Fro*_*ire 7

没有内置功能.你只需要做一点工作.像这样:

public static string Right(string original, int numberCharacters)
{
    return original.Substring(original.Length - numberCharacters);
}
Run Code Online (Sandbox Code Playgroud)

这将像Right在VB中一样返回.

希望这对你有所帮助!代码取自:http://forums.asp.net/t/341166.aspx/1


Joe*_*orn 5

您可以通过导入Microsoft.VisualBasic命名空间从C#调用此函数.

但不要.不要使用VB中的.Right()..Substring()而是使用更新的方法.


Kei*_*las 5

您可以使用 C# 中的所有 Visual Basic 特定功能

像这样 :-

Microsoft.VisualBasic.Strings.Right(s, 10);
Run Code Online (Sandbox Code Playgroud)

您还必须参考 Microsoft.VisualBasic 程序集。

  • 这不是一个好方法。您不应该依赖导入 VB 程序集,除非他们没有其他方法。 (2认同)
  • 它不是 C#,而是 .NET。VB lib 是一个扩展库,如果您正在移植大量使用 VB 扩展库的 VB 代码,那么这是一个很好的方法,或者您可以慢慢将其重写为 vanilla .NET (2认同)