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

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(13)C#里使用比较难理解的IList<ArraySegment<byte>>类型相关的知识,希望对你有一定的参考价值。


经常做网络开发,需要接收网络的数据,由于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> : IList<T>, ICollection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T&

以上是关于(13)C#里使用比较难理解的IList<ArraySegment<byte>>类型的主要内容,如果未能解决你的问题,请参考以下文章

C# IList<T>的用法?

工作流

工作流

C# 列出 IList 或 IEnumerable 作为参数

DataTable转换成IList

C#界面里的winform BackColor和BackgroundImage属性