Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RemoveAtRange()

ImmutableArray< T > System.Collections.Immutable.ImmutableArray< T >.RemoveAtRange ( ICollection< int > indicesToRemove)
inlineprivate

Definition at line 1550 of file ImmutableArray.cs.

1551 {
1552 ImmutableArray<T> result = this;
1553 result.ThrowNullRefIfNotInitialized();
1554 Requires.NotNull(indicesToRemove, "indicesToRemove");
1555 if (indicesToRemove.Count == 0)
1556 {
1557 return result;
1558 }
1559 T[] array = new T[result.Length - indicesToRemove.Count];
1560 int num = 0;
1561 int num2 = 0;
1562 int num3 = -1;
1563 foreach (int item in indicesToRemove)
1564 {
1565 int num4 = ((num3 == -1) ? item : (item - num3 - 1));
1566 Array.Copy(result.array, num + num2, array, num, num4);
1567 num2++;
1568 num += num4;
1569 num3 = item;
1570 }
1571 Array.Copy(result.array, num + num2, array, num, result.Length - (num + num2));
1572 return new ImmutableArray<T>(array);
1573 }
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624

References System.Collections.Immutable.ImmutableArray< T >.array, System.Array.Copy(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, and System.item.