如何通过引用将数组传递给扩展方法。
这是我尝试但不工作的。
public static void RemoveAtIndex(ref this int[] arr, int index)
答案 0 :(得分:4)
您无法通过ref发送扩展目标对象。 你真的需要它吗? 是否通过扩展方法将数组替换为新数组?
答案 1 :(得分:0)
Linq用于返回数据,而不是用于更改数据。使用稍微不同的方法,您替换整个阵列,而不是更改阵列。
首先添加这个小扩展方法:
public static class Extensions
{
public static IEnumerable<T> SkipAt<T>(this IEnumerable<T> source, int index)
{
return source.Where((it, i) => i != index);
}
}
然后你可以做“Linq方式”:
var a = new[] {1,2,3};
a = a.SkipAt(1).ToArray();