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)
如果拼接元素的数量大于列表中元素的数量,则 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)