相当于StringBuilder's的字节插入方法
本文关键字:字节 插入 方法 StringBuilder 相当于 | 更新日期: 2023-09-27 18:05:15
是否有一些等效的StringBuilder.Insert
方法用于字节数组?我打算尝试使用MemoryStream
,但错误被抛出,告诉我MemoryStream
对象是"不可扩展的"。我需要将字节放在另一个(已经存在的字节数组)的特定位置。
下面是使用StringBuilder的相同思路。
String firstString = "FirstData";
String someString = "string Data";
int Index = 0;
StringBuilder sb = new StringBuilder(firstString);
for(int i = 0; i < someString.Length; i++)
{
sb.Insert(index, someString[i]);
index += 2;
}
谢谢你的帮助,
艾凡使用List;这将允许您根据需要插入。如果你有一个已经存在的数组,你可以调用ToList()
。
List<byte> data1 = new List<byte>() {10, 11, 12};
List<byte> data2 = new List<byte>() {13, 14, 15};
int Index = 0;
for(int i = 0; i < data1.Count; i++)
{
data2.Insert(index, data2[i]);
index += 2;
}
然后返回到数组,只需调用ToArray()
。
可以使用字节列表而不是字节数组,并在其中使用insert方法。
您是否尝试过使用List
,它有一个Insert
方法
根据定义,"流"只能单向流动。一旦事情发生,就没有办法改变了。如果您想要这种功能,您必须创建某种类型的常规内存集合,以便在尝试将数据推出到流之前为自己提供一个可以修改的缓冲区。
您可以创建一个字节数组,而不是创建一些字节集合:
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
Byte[] bytes = encoding.GetBytes("yourString");
或:
byte[] utf8 = System.Text.Encoding.UTF8.GetBytes ("yourString");
使用ASCII或UTF8或任何其他对话