foreach (string sn in MACOrSerial.Split(','))
{
MACOrSerial = sn.Trim();
}
Run Code Online (Sandbox Code Playgroud)
MACORSerial包含以逗号分隔的一串文本(EX.AA123241,BB123431,CC1231243).我抓住一个子串并将其放入相同的MACORSerial中.
这不会给我带来任何问题,因为foreach仍将使用内存中的原始 MACOrSerial.
虽然我认为这是最节省内存的方法,但它是否正确或者我应该使用新名称制作另一个字符串,例如
MacORSerialSubString = sn.Trim()?
Run Code Online (Sandbox Code Playgroud)
我没有任何记忆问题.我只是想确保我的代码干净简洁.
你的假设是不正确的-环越过string[]从产生Split-这些都是新的字符串实例.
您不是通过将字符串重新分配给原始变量来保存任何内存,而是通过重用变量而失去可读性.
这是一种更具可读性的方法,它使用了一些内置功能:
string[] serialNumbers = MACOrSerial.Split(new [] {',', ' ', '\r', '\n' },
StringSplitOptions.RemoveEmptyEntries);
foreach (string sn in serialNumbers)
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)