首页 >后端开发 >C++ >如何从 .NET 中的常规数组中删除元素?

如何从 .NET 中的常规数组中删除元素?

Linda Hamilton
Linda Hamilton原创
2025-01-25 01:51:08387浏览

How to Remove Elements from a Regular Array in .NET?

>有效地从.NET数组中删除元素

List<T>这样的动态阵列不同,标准.NET阵列缺少直接的Remove方法。 本文探讨了从常规阵列中删除元素的有效策略。

利用Linq进行元素删除>

一种简洁的方法利用linq过滤和重建数组:>

这将数组转换为
<code class="language-csharp">var foos = new Foo[] { foo1, foo2, foo3, foo4 };
foos = foos.Where(f => f.Id != idToRemove).ToArray();</code>
,根据条件过滤出不需要的元素(此处,

),然后将过滤后的列表转换为数组。 List<T>f.Id != idToRemove>

功能的自定义扩展方法RemoveAt> 为了获得更多控制,可以实现模仿>

RemoveAt>此方法有效地处理边缘案例,并在指定索引之前和之后复制元素到新数组,从而有效地在给定索引处删除元素。 用法:

<code class="language-csharp">public static T[] RemoveAt<T>(this T[] source, int index)
{
    if (index < 0 || index >= source.Length)
        throw new ArgumentOutOfRangeException(nameof(index));

    T[] dest = new T[source.Length - 1];
    Array.Copy(source, 0, dest, 0, index);
    Array.Copy(source, index + 1, dest, index, source.Length - index - 1);
    return dest;
}</code>

>这为常规数组中缺少的功能提供了更直接的替换。 请记住,这两种方法都会创建一个

<code class="language-csharp">Foo[] foos = GetFoos();
foos = foos.RemoveAt(2);</code>
new

阵列;原始阵列保持不变。 选择最适合您的需求和编码样式的方法。RemoveAt

以上是如何从 .NET 中的常规数组中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn