495 {
496 object @object = position.GetObject();
497 next = default(SequencePosition);
498 if (@object == null)
499 {
500 memory = default(ReadOnlyMemory<T>);
501 return false;
502 }
505 int integer = position.GetInteger();
508 {
509 ReadOnlySequenceSegment<T> readOnlySequenceSegment = (ReadOnlySequenceSegment<T>)@object;
510 if (readOnlySequenceSegment != endObject)
511 {
512 ReadOnlySequenceSegment<T> next2 = readOnlySequenceSegment.Next;
513 if (next2 == null)
514 {
516 }
517 next = new SequencePosition(next2, 0);
518 memory = readOnlySequenceSegment.Memory.Slice(integer);
519 }
520 else
521 {
522 memory = readOnlySequenceSegment.Memory.Slice(integer,
index - integer);
523 }
524 }
525 else
526 {
527 if (@object != endObject)
528 {
530 }
532 {
533 memory =
new ReadOnlyMemory<T>((T[])@
object, integer,
index - integer);
534 }
535 else if (typeof(T) == typeof(
char) && sequenceType ==
SequenceType.String)
536 {
537 memory = (ReadOnlyMemory<T>)(
object)((
string)@
object).AsMemory(integer,
index - integer);
538 }
539 else
540 {
541 memory = ((MemoryManager<T>)@
object).Memory.Slice(integer,
index - integer);
542 }
543 }
544 return true;
545 }
static void ThrowInvalidOperationException_EndPositionNotReached()
readonly object _endObject
SequenceType GetSequenceType()
static int GetIndex(int Integer)