我正在尝试将字节数组转换为以逗号分隔的字符串。我只想将 de 字节的值转换为字符串,以便我可以通过 TCP 将字符串发送到另一台电脑。
这是我现在正在运行的代码,它正在运行,但速度太慢(字节数组有 50000 个元素)。你有什么更好的主意吗?
谢谢。
byte[] bytes = (byte[])dt.Rows[0]["LNL_BLOB"];
string foto="";
foreach (byte b in bytes)
{
foto = foto + "," + b.ToString();
}
Run Code Online (Sandbox Code Playgroud)
好吧,您正在分配 100000 个字符串(一半来自 ToString() 调用,一半用于中间字符串)。您是否从未听说过字符串连接的危险以及StringBuilder的用途?
例如
byte[] bytes = (byte[])dt.Rows[0]["LNL_BLOB"];
System.Text.StringBuilder foto=new System.Text.StringBuilder();
foreach (byte b in bytes)
{
foto.AppendFormat(",{0}",b);
}
return foto.ToString(); /* Or however you're using your string now */
Run Code Online (Sandbox Code Playgroud)
在执行大量字符串操作时使用StringBuilder。在这种特殊情况下,您还可以使用 string.Join:
string foto = string.Join(",", bytes);
Run Code Online (Sandbox Code Playgroud)