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

◆ InsertRange() [1/3]

ImmutableArray< T > System.Collections.Immutable.ImmutableArray< T >.InsertRange ( int index,
IEnumerable< T > items )
inline

Implements System.Collections.Immutable.IImmutableList< T >.

Definition at line 1055 of file ImmutableArray.cs.

1056 {
1057 ImmutableArray<T> result = this;
1058 result.ThrowNullRefIfNotInitialized();
1059 Requires.Range(index >= 0 && index <= result.Length, "index");
1060 Requires.NotNull(items, "items");
1061 if (result.Length == 0)
1062 {
1063 return ImmutableArray.CreateRange(items);
1064 }
1065 int count = ImmutableExtensions.GetCount(ref items);
1066 if (count == 0)
1067 {
1068 return result;
1069 }
1070 T[] array = new T[result.Length + count];
1071 if (index != 0)
1072 {
1073 Array.Copy(result.array, array, index);
1074 }
1075 if (index != result.Length)
1076 {
1077 Array.Copy(result.array, index, array, index + count, result.Length - index);
1078 }
1079 if (!items.TryCopyTo(array, index))
1080 {
1081 int num = index;
1082 foreach (T item in items)
1083 {
1084 array[num++] = item;
1085 }
1086 }
1087 return new ImmutableArray<T>(array);
1088 }
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.count, System.index, System.item, and System.Collections.Immutable.Requires.Range().