从普通数组中移除元素
问:我需要从一个普通的对象数组中移除一个元素。具体来说,我想移除第二个元素。有没有类似于列表的RemoveAt()方法的办法可以做到这一点?
答1(使用列表):
如果您愿意使用列表,您可以将数组转换为列表,移除元素,然后将其转换回数组。
<code class="language-csharp">var foos = new List<foo>(array); foos.RemoveAt(index); return foos.ToArray();</code>
答2(扩展方法):
作为使用列表的替代方法,您可以使用一个专门用于此任务的扩展方法。这是一个示例:
<code class="language-csharp">public static T[] RemoveAt<T>(this T[] source, int index) { T[] dest = new T[source.Length - 1]; if (index > 0) Array.Copy(source, 0, dest, 0, index); if (index < source.Length - 1) Array.Copy(source, index + 1, dest, index, source.Length - index - 1); return dest; }</code>
有了这个扩展方法,您可以像这样移除第二个元素:
<code class="language-csharp">Foo[] bar = GetFoos(); bar = bar.RemoveAt(1); // 注意:数组索引从0开始,所以第二个元素的索引是1</code>
以上是如何从C#中的常规数组中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!