Skip to content

Class MemorySegment<T>

Namespace: Tool.Utils
Assembly: Tool.Net.dll

提供内存连续模型

csharp
public sealed class MemorySegment<T> : ReadOnlySequenceSegment<T>

Type Parameters

T

类型

Inheritance

objectReadOnlySequenceSegment<T>MemorySegment<T>

Inherited Members

ReadOnlySequenceSegment<T>.Memory, ReadOnlySequenceSegment<T>.Next, ReadOnlySequenceSegment<T>.RunningIndex, object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods

ObjectExtension.Add<T>(object, object, object), ObjectExtension.CopyEntity(object, object, params string[]), ObjectExtension.EntityToJson(object), ObjectExtension.EntityToJson(object, bool), ObjectExtension.EntityToJson(object, bool, string), DictionaryExtension.GetDictionary(object), TypeExtension.GetFieldKey(object, string, out bool), TypeExtension.GetFieldKey<T>(object, string, out bool), TypeExtension.GetFieldKey(object, Type, string, out bool), ObjectExtension.GetIntPtr(object), ObjectExtension.GetIntPtrInt(object), TypeExtension.GetPropertieFind(object, string, bool), TypeExtension.GetProperties(object), TypeExtension.GetPropertyKey(object, string, out bool), TypeExtension.GetPropertyKey<T>(object, string, out bool), TypeExtension.GetPropertyKey(object, Type, string, out bool), TypeExtension.GetValue(object, PropertyDescriptor), TypeExtension.GetValue(object, string, bool), TypeExtension.GetValue(object, string), ObjectExtension.Read<T>(object, object, int, int), ObjectExtension.Read<T>(object, int, object, int, int), DictionaryExtension.SetDictionary(object, IDictionary<string, object>), TypeExtension.SetFieldKey(object, string, object), TypeExtension.SetFieldKey<T>(object, string, object), TypeExtension.SetFieldKey(object, Type, string, object), TypeExtension.SetPropertyKey(object, string, object), TypeExtension.SetPropertyKey<T>(object, string, object), TypeExtension.SetPropertyKey(object, Type, string, object), TypeExtension.SetValue(object, PropertyDescriptor, object), TypeExtension.SetValue(object, string, object, bool), TypeExtension.SetValue(object, string, object), ObjectExtension.ToBase64String(object), ObjectExtension.ToBytes(object), ObjectExtension.ToBytes(object, out Type), DictionaryExtension.ToDictionary(object), DictionaryExtension.ToDictionary<T>(object), DictionaryExtension.ToIDictionary(object), DictionaryExtension.ToIDictionary<T>(object), ObjectExtension.ToJson(object), ObjectExtension.ToJson(object, JsonSerializerOptions), ObjectExtension.ToJsonWeb(object), ObjectExtension.ToJsonWeb(object, Action<JsonSerializerOptions>), ObjectExtension.ToTryVar<T>(object, T), ObjectExtension.ToVar<T>(object), ObjectExtension.ToVar(object, Type, bool), ObjectExtension.ToVar(object, string), ObjectExtension.ToXml(object)

Remarks

代码由逆血提供支持

Constructors

MemorySegment()

创建单一连续内存

csharp
public MemorySegment()

MemorySegment(T[])

创建单一连续内存

csharp
public MemorySegment(T[] array)

Parameters

array T[]

内存

MemorySegment(T[], int, int)

创建单一连续内存

csharp
public MemorySegment(T[] array, int start, int length)

Parameters

array T[]

内存

start int

开始读取位置

length int

读取长度

MemorySegment(in ReadOnlyMemory<T>)

创建单一连续内存

csharp
public MemorySegment(in ReadOnlyMemory<T> memory)

Parameters

memory ReadOnlyMemory<T>

内存

Properties

EndNext

获取节点的最底层

csharp
public MemorySegment<T> EndNext { get; }

Property Value

MemorySegment<T>

IsEmpty

获取连续内存是否为空

csharp
public bool IsEmpty { get; }

Property Value

bool

Length

获取连续内存的总长度

csharp
public int Length { get; }

Property Value

int

LongLength

获取连续内存的总长度

csharp
public long LongLength { get; }

Property Value

long

Rank

层级数

csharp
public int Rank { get; }

Property Value

int

Methods

Append(in ReadOnlyMemory<T>)

添加连接的内存数据

csharp
public MemorySegment<T> Append(in ReadOnlyMemory<T> memory)

Parameters

memory ReadOnlyMemory<T>

内存

Returns

MemorySegment<T>

新的连续内存

Append(T[])

添加连接的内存数据

csharp
public MemorySegment<T> Append(T[] memory)

Parameters

memory T[]

内存

Returns

MemorySegment<T>

新的连续内存

Copy(in ReadOnlyMemory<T>)

复制一份内存到连续内存中

csharp
public void Copy(in ReadOnlyMemory<T> memory)

Parameters

memory ReadOnlyMemory<T>

内存

Empty()

清空当前连续内存

csharp
public void Empty()

ToReadOnlySequence()

创建可读的连续(顺序串联)

csharp
public ReadOnlySequence<T> ToReadOnlySequence()

Returns

ReadOnlySequence<T>

返回

ToReadOnlySequence(int, int)

创建可读的连续(顺序串联)

csharp
public ReadOnlySequence<T> ToReadOnlySequence(int startIndex, int endIndex)

Parameters

startIndex int

开始位置

endIndex int

结尾位置

Returns

ReadOnlySequence<T>

返回

ToString()

获取相关描述

csharp
public override string ToString()

Returns

string

基于Apache-2.0协议开源