(13)C#里使用比较难理解的IList<ArraySegment<byte>>类型

在网络开发中,由于TCP数据分段接收,常常使用IList<ArraySegment<byte>>来存储和合并数据。ArraySegment<byte>作为数据段容器,List则用于收集所有分段。本文探讨了如何理解和操作这种数据结构,包括将其转换为byte[]数组以及如何添加数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


经常做网络开发,需要接收网络的数据,由于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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值