| File: System\Buffers\ReadOnlySequenceDebugView.cs | Web Access |
| Project: src\runtime\src\libraries\System.Memory\src\System.Memory.csproj (System.Memory) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; namespace System.Buffers { internal sealed class ReadOnlySequenceDebugView<T> { private readonly T[] _array; private readonly ReadOnlySequenceDebugViewSegments _segments; public ReadOnlySequenceDebugView(ReadOnlySequence<T> sequence) { _array = sequence.ToArray(); var segmentCount = 0; foreach (var _ in sequence) { segmentCount++; } var segments = new ReadOnlyMemory<T>[segmentCount]; int i = 0; foreach (ReadOnlyMemory<T> readOnlyMemory in sequence) { segments[i] = readOnlyMemory; i++; } _segments = new ReadOnlySequenceDebugViewSegments() { Segments = segments }; } public ReadOnlySequenceDebugViewSegments BufferSegments => _segments; [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public T[] Items => _array; [DebuggerDisplay("Count = {Segments.Length}", Name = "Segments")] public struct ReadOnlySequenceDebugViewSegments { [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public ReadOnlyMemory<T>[] Segments { get; set; } } } }