Mat*_*eld 32 c# stringbuilder bytearray
这是一个简单的,我认为可以回答的问题.我确实试图在这里找到答案,但没有提出任何答案 - 如果有我错过的东西,请道歉.
无论如何,是否有相当于StringBuilder的字节数组?
我并不担心所有不同的重载Append()- 但我想看到Append(byte)和Append(byte[]).
周围有什么东西或者是你自己的时间吗?
Fre*_*örk 32
会对MemoryStream你有用吗?界面可能不太方便,但它提供了一种附加字节的简单方法,当你完成后,你可以byte[]通过调用获取内容ToArray().
StringBuilder通过制作扩展方法可能可以实现更像类似的接口.
更新
扩展方法可能如下所示:
public static class MemoryStreamExtensions
{
public static void Append(this MemoryStream stream, byte value)
{
stream.Append(new[] { value });
}
public static void Append(this MemoryStream stream, byte[] values)
{
stream.Write(values, 0, values.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
MemoryStream stream = new MemoryStream();
stream.Append(67);
stream.Append(new byte[] { 68, 69 });
byte[] data = stream.ToArray(); // gets an array with bytes 67, 68 and 69
Run Code Online (Sandbox Code Playgroud)
Ter*_*ver 17
该MemoryStream方法是好的,但如果你想拥有的StringBuilder类行为增加BinaryWriter.BinaryWriter提供了您可能想要的所有写入覆盖.
MemoryStream stream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(stream);
writer.Write((byte)67);
writer.Write(new byte[] { 68, 69 });
Run Code Online (Sandbox Code Playgroud)
Luk*_*keH 11
可能List<byte>:
var byteList = new List<byte>();
byteList.Add(42);
byteList.AddRange(new byte[] { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)