小编hit*_*tch的帖子

在VB.NET中的一行代码中替换字符串中的多个字符

使用VB.NET我希望能够在一行代码中替换字符串中的一系列字符.

即,类似于:

Dim charsToReplace as string = "acegi"
Dim stringToBeReplaced as string = "abcdefghijklmnop"

charsToReplace.ToArray().ForEach(Function (c) stringTobeReplaced = stringTobeReplaced.Replace(c, ""))
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.

以下工作正常,但我不希望该字符串是类级变量:

 Sub Main()
    Dim toReplace As String = "acegikmoq"

    Console.WriteLine(mainString)
    Dim chars As List(Of Char) = toReplace.ToList()
    chars.ForEach(AddressOf replaceVal)

    Console.WriteLine(mainString)
    Console.ReadLine()
End Sub

Dim mainString As String = "this is my string that has values in it that I am going to quickly replace all of..."

Sub replaceVal(ByVal c As Char)
    mainString = mainString.Replace(c, "")
End Sub
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

vb.net string replace

13
推荐指数
4
解决办法
7万
查看次数

范围以及如何使用VB.Net缩小范围

如果我想在C#中缩小变量的范围,我可以引入额外的括号 - 即:

class Program
{
    static void Main(string[] args)
    {
        myClass x = new myClass();
        x.MyProperty = 1000;
        Console.WriteLine("x = " + x.MyProperty);

        {
            myClass y = new myClass();
            y.MyProperty = 2000;
            Console.WriteLine("y = " + y.MyProperty);
        }

        myClass y2 = new myClass();
        y2.MyProperty = 3000;
        Console.WriteLine("y2 = " + y2.MyProperty);

    }

    class myClass
    {

        public int MyProperty { get; set; }

    }
}
Run Code Online (Sandbox Code Playgroud)

在ide中,我不能再在新大括号引入的范围之外引用y.我原以为这意味着变量y可用于垃圾收集.

(有趣的是,当使用反射器查看编译后的代码时,无论是否有额外的大括号,都没有区别)

使用VB.net时是否有类似的方法缩小范围?这对内部作用域中定义的变量何时可能被垃圾收集有影响吗?

c# vb.net reflector scope

5
推荐指数
2
解决办法
812
查看次数

是不是建议在VB.Net中使用Mid(),Instr(),LBound(),UBound()等?

我来自C#背景,但我现在主要使用VB.Net.在我看来,上述功能(以及其他功能 - 例如UCase,LCase)等是VB6及之前的结转.这些功能的使用是否在VB.Net中不受欢迎,还是纯粹归结为个人偏好?

我个人的偏好是远离他们,但我想知道这是否只是我的C#偏见.

我遇到了一些问题 - 特别是从VB6转换为VB.Net的代码,其中集合的索引已经意味着错误已经被引入到代码中,因此我对它们持谨慎态度.

vb.net vb6

2
推荐指数
1
解决办法
4304
查看次数

标签 统计

vb.net ×3

c# ×1

reflector ×1

replace ×1

scope ×1

string ×1

vb6 ×1