繁体   English   中英

通过引用传递数组扩展方法

[英]Passing array by reference to extension methods

如何通过引用将数组传递给扩展方法。

这是我尝试但不工作的。

public static void RemoveAtIndex(ref this int[] arr, int index)

您不能通过ref发送扩展的目标对象。 你真的需要它吗? 是否通过扩展方法将数组替换为新数组?

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM