在c#.aspx应用程序中使用LSET或RSET

本文关键字:LSET RSET aspx 应用程序 | 更新日期: 2023-09-27 18:22:27

我可能缺少一些明显的东西,但我似乎无法在c#代码隐藏页中使用LSET和RSET字符串函数。

我的代码如下:

    string ts = LSet(someString, 16);

Visual Web开发程序无法识别LSet。

一位同事在相同的环境中做着相同类型的工作,只是他使用VB进行代码隐藏。我让他试试

他的代码如下:

    Dim ts as String 
    ts = LSet(someString, 16)

这非常有效。

所以,我试着添加

    using Microsoft.VisualBasic;

在我的c#页面中。LSet仍未被识别。

我做错了什么?LSet和RSet在c#中不可用吗?如果是,为什么?我知道PadLeft和PadRight是相似的,但如果字符串大于指定长度,它们不会剪切字符串,所以我仍然想使用LSet和RSet。

在c#.aspx应用程序中使用LSET或RSET

 Dim ts as String 
 ts = LSet(someString, 16)

可以使用Strings.LSet

string ts="xxxx....";
var result = Strings.LSet(ts, 16)

可以通过使用String.Substring 来实现相同的效果

这是的实现

public static string LSet(string Source, int Length)
{
    if (Length == 0)
    {
        return "";
    }
    if (Source == null)
    {
        return new string(' ', Length);
    }
    if (Length > Source.Length)
    {
        return Source.PadRight(Length);
    }
    return Source.Substring(0, Length);
}
public static string RSet(string Source, int Length)
{
    if (Length == 0)
    {
        return "";
    }
    if (Source == null)
    {
        return new string(' ', Length);
    }
    if (Length > Source.Length)
    {
        return Source.PadLeft(Length);
    }
    return Source.Substring(0, Length);
}

或者只需将Microsoft.VisualBasic添加到引用中并使用该名称空间,您就会发现名为Strings的类,它有那些静态成员——实际上所有的vb字符串方法

在您的项目References中,您需要添加对Microsoft.VisualBasic程序集的引用。

using Microsoft.VisualBasic;
class Program
{
    static void Main(string[] args)
    {
        var input = "123";
        var length = 6;
        var lSet = Strings.LSet(input, length);
        var rSet = Strings.RSet(input, length);
        // you could also have the same functionality 
        // without having to use LSet and RSet
        var padR = input.Substring(0, 
                Math.Min(input.Length, length))
            .PadRight(length, ' ');
        var padL = input.Substring(0, 
                Math.Min(input.Length, length))
            .PadLeft(length, ' ');
        Console.WriteLine(lSet == padR);
        Console.WriteLine(rSet == padL);
    }
}

如果您想要pad或truncate语义;

string ts = someString.PadRight(len).Substring(0, len);