首页 >后端开发 >C++ >如何在 C# 中删除数组中的元素?

如何在 C# 中删除数组中的元素?

Susan Sarandon
Susan Sarandon原创
2025-01-20 20:36:15675浏览

How Can I Delete Elements from an Array in C#?

从 C# 数组中高效删除元素

C# 数组的大小本质上是固定的;你不能直接删除元素。 然而,有几种方法可以有效地模拟元素去除。 最佳方法取决于您的 .NET Framework 版本和具体需求。

利用 LINQ(适用于 .NET Framework 3.5 及更高版本):

LINQ 为数组操作提供了优雅的解决方案。 要删除所有出现的特定值:

<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int valueToRemove = 4;
numbers = numbers.Where(num => num != valueToRemove).ToArray();</code>

仅删除 第一个 出现需要稍微不同的方法:

<code class="language-csharp">int indexToRemove = Array.IndexOf(numbers, valueToRemove);
numbers = numbers.Where((num, index) => index != indexToRemove).ToArray();</code>

非 LINQ 方法(适用于 .NET Framework 2.0 及更高版本):

对于较旧的 .NET 框架,传统的数组方法是必要的。 一种技术使用自定义谓词函数:

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

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

或者,将数组转换为 List<T>,删除元素,然后转换回来:

<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int valueToRemove = 4;
int indexToRemove = Array.IndexOf(numbers, valueToRemove);
List<int> tempList = new List<int>(numbers);
tempList.RemoveAt(indexToRemove);
numbers = tempList.ToArray();</code>

重要注意事项: 在尝试删除以防止异常之前,请始终使用 Array.IndexOf 验证数组中元素的存在。 使用 LINQ 通常会提供更简洁和可读的代码,但非 LINQ 方法提供与旧框架的兼容性。

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

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