從普通數組中移除元素
問:我需要從一個普通的對像數組中移除一個元素。具體來說,我想移除第二個元素。有沒有類似於列表的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中文網其他相關文章!