c#中的JavaScript拼接

Ben*_*dEg 4 .net c# arrays

c#有一个类似于spliceJavaScript的方法吗?

我只知道RemoveRange,这不会返回被删除的元素:

List<string> t = new List<string>();
t.RemoveRange(..., ...);
Run Code Online (Sandbox Code Playgroud)

(我想避免写我自己的收藏).

Sel*_*enç 11

没有确切的平等,但你可以写一个:

public static List<T> Splice<T>(this List<T> source,int index,int count)
{
    var items = source.GetRange(index, count);
    source.RemoveRange(index,count);
    return items;
}
Run Code Online (Sandbox Code Playgroud)


Mik*_*nov 7

如果拼接元素的数量大于列表中元素的数量,则 GetRange() 会引发异常。更好的解决方案是:

    public static class ListExtension
    {
      public static List<T> Splice<T>(this List<T> source, int start, int size)
      {
          var items = source.Skip(start).Take(size).ToList<T>(); 
          if (source.Count >= size)
              source.RemoveRange(start, size);
          else 
              source.Clear();
          return items;
      }
    }
Run Code Online (Sandbox Code Playgroud)