ArraySegment转成string类型
在用WebSocket 写小聊天室的时候发现需要用到将ArraySegment转成string
搜了搜,发现没有,于是我看了下官网,又问了一下人,有了思路,给解决了,
首先要将ArraySegment转化成byte[] 再使用System.Text.Encoding.UTF8.GetString()转换成string
如果要按对象中的索引检索元素 ArraySegment ,则必须将其强制转换为 IList 对象,并使用属性对其进行检索或修改 IList.Item[] 。
以下是代码:
//先把ArraySegment<byte>的实例buffer 转成IList<T>
var list = (IList<byte>)buffer;
byte[] bt = new byte[2048];
int i = 0;
while (list[i] != 0)
{
bt[i] = list[i];
i++;
}
string message = Encoding.UTF8.GetString(bt);