📜  从数组中删除 c# (1)

📅  最后修改于: 2023-12-03 14:49:25.092000             🧑  作者: Mango

从数组中删除 C#

在 C# 中,数组是一种非常有用的数据结构,它可以容纳多个元素并按照索引访问它们。但有时候我们需要从数组中删除某个元素。在本文中,我们将介绍如何在 C# 中从数组中删除元素。

方法一:创建新数组

一种简单的方法是创建一个新的数组,然后将原数组中不需要删除的元素复制到新数组中。这种方法需要耗费一定的时间和空间来创建和复制新数组,但是它能够保证原始数组的数据不会被改变。

int[] numbers = { 1, 2, 3, 4, 5 };
int[] newNumbers = new int[numbers.Length - 1];

int index = 0;
for (int i = 0; i < numbers.Length; i++)
{
    if (i != 2) // 删除索引为 2 的元素
    {
        newNumbers[index] = numbers[i];
        index++;
    }
}

// 由于原数组并没有被改变,所以输出结果应该是:1,2,4,5
Console.WriteLine(string.Join(",", numbers));
// 输出结果应该是:1,2,4,5
Console.WriteLine(string.Join(",", newNumbers));
方法二:使用 List<T>

另一种常见的方法是使用 List<T> 类型。 List<T> 类型是一个动态数组,它提供了丰富的集合操作方法。我们可以使用 List<T> 类型的 RemoveAt() 方法来删除指定索引位置上的元素。这种方法不需要创建新数组,但是它会改变原始数组。

List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 };
numbersList.RemoveAt(2); // 删除索引为 2 的元素

// 由于使用了 List<T> 类型,原数组已被改变,所以输出结果应该是:1,2,4,5
Console.WriteLine(string.Join(",", numbersList));
方法三:使用 Array.Copy()

最后一种方法是使用 Array.Copy() 方法。该方法可以将原数组中的一部分复制到新数组中。通过将删除元素后的剩余元素复制到原数组的相同位置上,我们可以实现在原数组中删除元素的操作。这种方法不会创建新数组,但是它会改变原始数组。

int[] numbers = { 1, 2, 3, 4, 5 };
int[] newNumbers = new int[numbers.Length - 1];

// 删除索引为 2 的元素
Array.Copy(numbers, 0, newNumbers, 0, 2);
Array.Copy(numbers, 3, newNumbers, 2, 2);

// 由于原数组被改变,输出结果应该是:1,2,4,5
Console.WriteLine(string.Join(",", numbers));
// 输出结果应该是:1,2,4,5
Console.WriteLine(string.Join(",", newNumbers));

总的来说,我们可以根据实际情况选择使用不同的方法来删除数组中的元素。如果您需要使用原始数组,请使用方法一或方法三。如果您可以使用集合类型,请使用方法二。