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

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

Linda Hamilton
发布: 2025-01-25 01:51:08
原创
385 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板