C#为循环中的字符串赋值的最佳方法

Ham*_*hid 4 .net c# string performance loops

我想知道在循环中分配字符串变量的最有效方法是什么.因此,例如,如果我必须浏览节点列表并将节点的值分配给字符串,那么在循环开始之前定义变量会更好吗

string myStringVariable = string.Empty
foreach(XmlNode node in givenNodes)
{
    myStringVariable = node.Value;
    ....
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者如果我在循环中定义变量就更有效率了

foreach(XmlNode node in givenNodes)
{
    string myStringVariable = node.Value;
    ....
    ...
}
Run Code Online (Sandbox Code Playgroud)

我认为第一种方法更有效,而第二种方法看起来更优雅.两者之间有性能差异吗?

谢谢你的回答.

Dav*_*itt 13

使用现代编译器,这根本不会产生任何性能差异,您应始终使用最适合您算法的方式.也就是说,如果您不需要上一次迭代中的变量值,则更喜欢第二种变体.


Mar*_*ter 6

我想主要的问题是:你是否需要在代码中的某个地方进一步使用该字符串变量,或者它的使用是否仅限于for循环的范围?如果它仅限于for循环的范围,那么肯定在循环内声明它.我怀疑在任何一种方式下都会有任何性能损失,但这应该是保持变量范围正确的次要因素.