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

时间:2013-07-16 12:54:08

标签: c# string

我可能遗漏了一些明显的东西,但我似乎无法在c#Code-Behind页面中使用LSET和RSET字符串函数。

我的代码如下:

    string ts = LSet(someString, 16);

Visual Web开发人员无法识别LSet。

同事在相同的上下文中执行相同类型的工作,除了他使用VB进行Code-Behind。我请他试试

他的代码如下:

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

这很有效。

所以,我试着添加

    using Microsoft.VisualBasic;

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

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

4 个答案:

答案 0 :(得分:1)

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

可以使用Strings.LSet

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

使用String.Substring

可以达到同样的效果

答案 1 :(得分:0)

在项目参考中,您需要添加对 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);
    }
}

答案 2 :(得分:0)

这是实施

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字符串方法

答案 3 :(得分:0)

如果你想要pad或truncate语义;

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