经常做网络开发,需要接收网络的数据,由于TCP的数据是一段一段地接收到的,那么需要把这些数据放到缓冲区,然后又需要把这些数据合并起来使用。
因此就会使用IList<ArraySegment<byte>>类型,使用ArraySegment<byte>来保存收到的一段数据,然后使用List来保存所有分段的数据。
初学C#的人,使用这个类型,往往比较难理解,所以需要通过例子来练习它。
比如怎么样从IList<ArraySegment<byte>>类型转换为byte[]数组,又或者怎么样往里面添加数据。
先来看一下ArraySegment<T>的定义:
#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll
#endregion
using System.Collections;
using System.Collections.Generic;
namespace System
{
//
// 摘要:
// 分隔一维数组的一部分。
//
// 类型参数:
// T:
// 数组段中元素的类型。
public struct ArraySegment<T> : ILis