 at the specified index         /// </summary>         /// <typeparam name="T"></typeparam>         /// <param name="source">The source.</param>         /// <param name="items">The items.</param>         /// <param name="index">The index.</param>         /// <exception cref="System.ArgumentNullException">         /// </exception>         public static void AddRange<T>(this IList<T> source, IEnumerable<T> items, int index)         {             if (source == null)             {                 throw new ArgumentNullException(nameof(source));             }              if (items == null)             {                 throw new ArgumentNullException(nameof(items));             }              if (source is List<T>)             {                 ((List<T>)source).InsertRange(index, items);             }             else if (source is IExtendedList<T>)             {                 ((IExtendedList<T>)source).InsertRange(items, index);             }             else             {                 items.ForEach(source.Add);             }         }          /// <summary>         /// Adds the range 