是否有一些等效的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;
}
感谢您的帮助,
埃文
答案 0 :(得分:3)
使用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()
。
答案 1 :(得分:1)
您可以使用字节列表而不是字节数组,并在那里使用insert方法。
答案 2 :(得分:0)
您是否尝试使用List
,它有一个Insert
方法
答案 3 :(得分:0)
根据定义,“流”仅以一种方式流动。一旦它流出大门,就无法改变某些东西。如果你想要这种能力,你必须创建一种常规的内存集合,以便在尝试将数据推送到流之前给自己一个缓冲区。
答案 4 :(得分:0)
您可以创建一个字节数组,而不是创建一些字节集合:
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
Byte[] bytes = encoding.GetBytes("yourString");
或:
byte[] utf8 = System.Text.Encoding.UTF8.GetBytes ("yourString");
使用ASCII或UTF8或任何其他对话。