在 C# 中使用数组时,可能需要从集合中移除特定元素。对于普通数组,与 List 类不同,没有直接可用的 RemoveAt() 方法。这使得开发人员需要寻找替代方法来实现此功能。
解决方案:
为了克服这个限制,可以先将普通数组转换为 List,执行移除操作,然后将修改后的 List 转换回数组,从而利用 List 的 RemoveAt() 方法。
<code class="language-c#">var foos = new List<foo>(array); foos.RemoveAt(index); return foos.ToArray();</code>
扩展方法替代方案:
或者,可以考虑使用模拟普通数组 RemoveAt() 功能的扩展方法:
<code class="language-c#">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-c#">Foo[] bar = GetFoos(); bar = bar.RemoveAt(2);</code>
以上是如何从 C# 数组中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!