<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.7.25380.108" />

ArraySingleString

Single dimensional array of strings.
using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.CompilerServices; namespace System.Private.Windows.BinaryFormat.Serializer { [NullableContext(1)] [Nullable(new byte[] { 0, 2 })] internal sealed class ArraySingleString : ArrayRecord<string>, IRecord<ArraySingleString>, IRecord { [Nullable(0)] private sealed class StringListAdapter : IReadOnlyList<string>, IEnumerable<string>, IEnumerable, IReadOnlyCollection<string> { [Nullable(new byte[] { 1, 2 })] private readonly IReadOnlyList<object> _recordList; private readonly IReadOnlyRecordMap _recordMap; [Nullable(2)] public string this[int index] { [NullableContext(2)] get { object obj = _recordList[index]; if (obj == null) return null; IRecord record = obj as IRecord; if (record == null) throw new InvalidOperationException(); BinaryObjectString binaryObjectString = _recordMap.Dereference(record) as BinaryObjectString; if (binaryObjectString == null) throw new InvalidOperationException(); return binaryObjectString.Value; } } int IReadOnlyCollection<string>.Count { get { return _recordList.Count; } } internal StringListAdapter([Nullable(new byte[] { 1, 2 })] IReadOnlyList<object> recordList, IReadOnlyRecordMap recordMap) { _recordList = recordList; _recordMap = recordMap; } [return: Nullable(new byte[] { 1, 2 })] public IEnumerator<string> GetEnumerator() { return <GetEnumerator>g__GetEnumerable|7_0().GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } [Nullable(new byte[] { 1, 2 })] private readonly IReadOnlyList<object> _records; public static RecordType RecordType => RecordType.ArraySingleString; public override BinaryType ElementType => BinaryType.String; internal ArraySingleString(Id objectId, [Nullable(new byte[] { 1, 2 })] IReadOnlyList<object> arrayObjects, IReadOnlyRecordMap recordMap) : base(new ArrayInfo(objectId, arrayObjects.Count), (IReadOnlyList<string>)new StringListAdapter(arrayObjects, recordMap)) { _records = arrayObjects; } private protected override void Write(BinaryWriter writer) { writer.Write((byte)RecordType); _arrayInfo.Write(writer); Record.WriteRecords(writer, _records, true); } } }