c#中的JavaScript拼接
本文关键字:拼接 JavaScript 中的 | 更新日期: 2024-09-24 07:34:04
c#是否有类似于JavaScript中splice
的方法?
我只知道RemoveRange
,这不会返回删除的元素:
List<string> t = new List<string>();
t.RemoveRange(..., ...);
(我想避免写自己的作品集)。
没有精确的等价物,但你可以写一个:
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;
}
如果拼接的元素数量大于列表中的元素数量,则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;
}
}
由于C#8,您可以使用C#范围。
int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
int[] subArray1 = someArray[0..2]; // { 1, 2 }
int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 }