首页 > 后端开发 > C++ > 如何高效地按值从 C# 数组中删除元素?

如何高效地按值从 C# 数组中删除元素?

Mary-Kate Olsen
发布: 2025-01-20 20:50:14
原创
168 人浏览过

How to Efficiently Delete Elements from a C# Array by Value?

在C#中从数组中删除元素

场景:

假设你有一个整数数组:

<code class="language-c#">int[] numbers = {1, 3, 4, 9, 2};</code>
登录后复制

你想删除具有特定值(例如,4)的元素。虽然可以使用ArrayList来管理数组,但其RemoveAt方法不允许基于元素值进行筛选。

解决方案:

要按名称(值)从数组中删除元素,可以使用LINQ或非LINQ方法。

LINQ方法(.NET Framework 3.5 ):

使用LINQ的Where方法,可以过滤元素并排除要删除的元素:

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2 };
int numToRemove = 4;
numbers = numbers.Where(val => val != numToRemove).ToArray();</code>
登录后复制

非LINQ方法(.NET Framework 2.0 ):

对于没有LINQ的环境,可以使用内置的Array方法来达到相同的结果:

<code class="language-c#">static bool isNotFour(int n)
{
    return n != 4;
}

int[] numbers = { 1, 3, 4, 9, 2 };
numbers = Array.FindAll(numbers, isNotFour);</code>
登录后复制

仅删除第一个实例:

如果只想删除特定元素的第一次出现:

LINQ方法:

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 4;
int numIndex = Array.IndexOf(numbers, numToRemove);
numbers = numbers.Where((val, idx) => idx != numIndex).ToArray();</code>
登录后复制

非LINQ方法:

<code class="language-c#">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 4;
int numIdx = Array.IndexOf(numbers, numToRemove);
List<int> tmp = new List<int>(numbers);
tmp.RemoveAt(numIdx);
numbers = tmp.ToArray();</code>
登录后复制

以上是如何高效地按值从 C# 数组中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

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