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