c# 把string数组转byte数组
时间: 2024-09-24 11:28:26 浏览: 41
C# byte数组与Image相互转换的方法
在 C# 中,将字符串数组转换为字节数组,可以使用 `BitConverter.GetBytes` 方法结合循环遍历数组。这个方法需要每个元素都被转换为字节,因此你需要先确定字符串字符是否都是 ASCII 字符,因为超过 7 位的 Unicode 字符会占用多个字节。
下面是一个示例,假设数组只包含 ASCII 字符:
```csharp
string[] strArray = { "Hello", "World" };
byte[] byteArray;
// 计算数组长度和所需的总字节数
int byteCount = strArray.Length * Encoding.ASCII.GetByteCount(strArray[0]);
// 使用足够大的数组存储结果
byteArray = new byte<byteCount>;
// 将字符串逐个转换并添加到字节数组
int index = 0;
foreach (string s in strArray)
{
byteArray[index++] = Encoding.ASCII.GetBytes(s)[0];
}
// 如果有剩余空间,填充零
if (index < byteArray.Length)
{
byteArray = byteArray.Take(index).ToArray();
}
```
如果不确定所有字符串都是 ASCII,可以先检查每个字符,然后使用 `GetBytes` 分别处理:
```csharp
StringBuilder sb = new StringBuilder();
foreach (string s in strArray)
{
foreach (char c in s)
{
sb.Append(BitConverter.GetBytes((byte)c));
}
}
byteArray = sb.ToByteArray();
```
阅读全文