如何在C#中从数组中删除一个元素

205

假设我有这个数组:

int[] numbers = {1, 3, 4, 9, 2};

如何通过"name"删除一个元素?比如说第四个元素?

即使使用ArrayList也无法删除吗?

string strNumbers = " 1, 3, 4, 9, 2";
ArrayList numbers = new ArrayList(strNumbers.Split(new char[] { ',' }));
numbers.RemoveAt(numbers.IndexOf(4));
foreach (var n in numbers)
{
    Response.Write(n);
}

如果您的列表中有重复的值,您想要仅删除第一个实例还是所有实例? - BenAlabaster
是的,我没有重复的值,你有什么想法? - ahmed
你的意思是“不是”,还是“是的”?(并不是要冒犯你的英语,只是需要澄清一下) - Malfist
@Malfist - 抱歉:),我的意思是我不在乎重复的值,因为我确定在我的情况下没有这样的值,再次感谢。 - ahmed
5
在C#中,你不能从数组中移除元素,就像你可以从这个示例程序中看到的那样。你能做的是创建一个新数组,仅复制原始数组的某些元素,并将其重新分配回原始变量。这就是所有答案中所做的。 - Nicola Musatti
如果您不需要移除任意项,但假设您想要弹出第一个项,您现在可以直接使用C#,如下所示:var tail = numbers[1..] - Chris Marisic
12个回答

1

'根据字典键值从字符串中删除项目。 ' VB.net 代码

 Dim stringArr As String() = "file1,file2,file3,file4,file5,file6".Split(","c)
 Dim test As Dictionary(Of String, String) = New Dictionary(Of String, String)
 test.Add("file3", "description")
 test.Add("file5", "description")
 stringArr = stringArr.Except(test.Keys).ToArray()

-6
我们可以通过使用for循环和continue语句来删除数组元素。
string[] cars = {"volvo", "benz", "ford", "bmw"};
for (int i = 0; i < cars.Length; i++)
{
    if (cars[i] == "benz")
    {
        continue;
    }
    Console.WriteLine(cars[i]);
}

这不会以任何方式改变数组。 - CFreitas
9
这将以遮住你的眼睛从房间中带走婴儿的方式,从数组中移除一个元素。 - Servy
删除一个我们不想在输出中显示的元素。没错,这并不会实际改变数组。 - arman aramesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接