gpt4 book ai didi

C# foreach 内存缓存和字符串内存优化

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:45 24 4
gpt4 key购买 nike

foreach (string sn in MACOrSerial.Split(','))
{
MACOrSerial = sn.Trim();
}

MACORSerial 包含以逗号分隔的文本字符串(例如 AA123241、BB123431、CC1231243)。我抓取一个子字符串并将其放入同一个 MACORSerial。

这不会给我带来任何问题,因为 foreach 仍将使用内存中的原始 MACOrSerial。

虽然我认为这是内存效率最高的方法,但它是否合适,还是我应该用新名称创建另一个字符串,例如

MacORSerialSubString = sn.Trim()?

我没有任何内存问题。我只想确保我的代码干净简洁。

最佳答案

您的假设不正确 - 循环遍历 Split 产生的 string[] - 这些都是字符串实例。

您不会通过将字符串重新分配给原始变量来节省任何内存,并且您会因重用变量而失去可读性。

这是一种更具可读性并使用一些内置功能的方法:

string[] serialNumbers = MACOrSerial.Split(new [] {',', ' ', '\r', '\n' }, 
StringSplitOptions.RemoveEmptyEntries);

foreach (string sn in serialNumbers)
{
// do stuff
}

关于C# foreach 内存缓存和字符串内存优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com