我有一个List,我正在添加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);
TIA
答案 0 :(得分:2)
试试这个:
lb.AddRange(BitConverter.GetBytes(theLength))
当然,您可能决定只需要最低有效位,在这种情况下,您可以进行简单的转换,或索引GetBytes()的结果,在这种情况下,这将是4个字节长。
有关BitConverter的更多信息: http://msdn.microsoft.com/en-us/library/system.bitconverter.getbytes.aspx
答案 1 :(得分:1)
如果字符串的长度在字节范围内:
lb.Add((byte)theLength);
答案 2 :(得分:1)
您必须将长度投射到byte
:
lb.Add((byte)theLength);
但正如您可能猜到的那样,您的长度并不总是适合单个字节。更具体地说明您对字节列表的期望,我们可以提供更好的答案(例如使用BinaryReader
/ BinaryWriter
而不是字节列表。)