C# 将字符串长度转换为十六进制值以添加到列表<;字节>;

C# 将字符串长度转换为十六进制值以添加到列表<;字节>;,c#,.net,C#,.net,我有一个添加了3个字节的列表,其中一个字节是动态传递给我的方法的字符串的长度。如何确定该字符串的长度并将int转换为list.add()方法中可以接受的值 代码如下: string myString = "This is a sample string...I need its length"; int theLength = myString.Length; List<byte> lb = new List<byte>(); lb.Add(0x81); lb.Add(t

我有一个添加了3个字节的列表,其中一个字节是动态传递给我的方法的字符串的长度。如何确定该字符串的长度并将int转换为list.add()方法中可以接受的值

代码如下:

string myString = "This is a sample string...I need its length";
int theLength = myString.Length;
List<byte> lb = new List<byte>();
lb.Add(0x81);
lb.Add(theLength); // this doesn't work
lb.Add(0x04);
string myString=“这是一个示例字符串……我需要它的长度”;
int theLength=myString.Length;
List lb=新列表();
lb.Add(0x81);
lb.Add(长度);//这不管用
lb.Add(0x04);

TIA

如果字符串的长度在字节范围内:

lb.Add((byte)theLength);

如果字符串的长度在字节范围内:

lb.Add((byte)theLength);
试试这个:

lb.AddRange(BitConverter.GetBytes(theLength))
当然,您可能会决定只需要最低有效位,在这种情况下,您可以执行简单的强制转换,或者索引到GetBytes()的结果中,在这种情况下,GetBytes()的长度为4字节

有关位转换器的详细信息: 试试这个:

lb.AddRange(BitConverter.GetBytes(theLength))
当然,您可能会决定只需要最低有效位,在这种情况下,您可以执行简单的强制转换,或者索引到GetBytes()的结果中,在这种情况下,GetBytes()的长度为4字节

有关位转换器的详细信息:

您必须将长度转换为
字节:

lb.Add((byte)theLength);

但正如您可能猜到的,您的长度并不总是适合一个字节。更具体地说,您希望如何处理字节列表,我们可能会提供更好的答案(例如使用/而不是字节列表)。

您必须将长度转换为
字节:

lb.Add((byte)theLength);

但正如您可能猜到的,您的长度并不总是适合一个字节。更具体地说,您希望如何处理字节列表,我们可能会提供更好的答案(例如使用/而不是字节列表)。

字符串长度是否需要存储在一个单字节中?字符串长度是否需要存储在一个单字节中?doh!不知道为什么我没想到要试试这个。谢谢字符串在字节范围内的最大长度是多少@ChristopherJohnson最多255个字符,但如果您不想陷入麻烦,则应实施Redneck Jedi的建议,该建议无论字符串大小都有效。请注意,在这种情况下,字符串的长度将跨越多个字节。doh!不知道为什么我没想到要试试这个。谢谢字符串在字节范围内的最大长度是多少@ChristopherJohnson最多255个字符,但如果您不想陷入麻烦,则应实施Redneck Jedi的建议,该建议无论字符串大小都有效。请注意,在这种情况下,字符串的长度将跨越多个字节。