VB.NET "For each"与 ".GetUpperBound(0)"

标签 vb.net string vector foreach

我想知道什么是首选...

    Dim sLines() As String = s.Split(NewLine)

对于每个:
    For Each sLines_item As String In sLines

.GetUpperBound:
    For i As Integer = 0 To sLines.GetUpperBound(0)

我不知道为什么在这种情况下引入了“For Each”。到目前为止,我只使用了 .GetUpperBound,并且我没有看到“For Each”的任何 PRO。

谢谢

ps:当我使用 ."GetUpperBound(0)"时,我知道我正在迭代向量。
相反,“For Each”听起来像是“我不在乎向量以何种顺序提供给我”。但这只是个人喜好,我想。

最佳答案

简短回答:不要使用 GetUpperBound() . GetUpperBound()的唯一优势是它适用于多维数组,其中 Length不起作用。然而,即使这种用法已经过时了,因为有 Array.GetLength()可用,需要 dimension范围。对于所有其他用途,For i = 0 to Array.Length - 1更好,可能是最快的选择。

关于VB.NET "For each"与 ".GetUpperBound(0)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135654/

相关文章:

VB.net 垃圾收集器不释放对象

vb.net - 是否可以仅部署使用 RS.exe 更改的报告?

javascript - javascript 中的 2 个字符串之间的比较不起作用

regex - 如何过滤 Smarty 变量以仅输出数字?

c++ - 在 vector 的 vector 上捕获 out_of_range

c# - 如何有效地确定 IEnumerable 是否具有多个元素?

vb.net - GetOccurrence总是抛出异常

javascript - 如何测试字符串是否包含无效的字符串文字?

c++ - 如果没有 endl,则重载 ostream 运算符段错误

c++ - 使用 find() 在 vector 中查找元素