在C#中从数组中删除项

Len*_*y G -1 c#

 Random rand = new Random();
        var list = new object[] { 1, 2, 3, "A", "B", "C" };
        object item = list[rand.Next(0, list.Length)];
Run Code Online (Sandbox Code Playgroud)

我想返回项目然后从列表[]中删除它

15e*_*153 6

你不能.请List<object>改用.

var list = new List<Object> { 1, 2, 3, "A", "B", "C" };
Run Code Online (Sandbox Code Playgroud)

要么

var list = (new object[] { 1, 2, 3, "A", "B", "C" }).ToList();
Run Code Online (Sandbox Code Playgroud)

甚至

var list = new List<Object>(new object[] { 1, 2, 3, "A", "B", "C" });
Run Code Online (Sandbox Code Playgroud)

然后删除一个项目(注意Length更改为Count):

int idx = rand.Next(0, list.Count);

object item = list[idx];

list.RemoveAt(idx);
Run Code Online (Sandbox Code Playgroud)

还有一个删除方法:

list.Remove(item);
Run Code Online (Sandbox Code Playgroud)

如果你知道列表中没有重复项(就像这个),那也没关系.

你可以从数组中"删除"一个项目最接近的是创建一个没有它的新数组 - 当然不值得麻烦.

List<T> 比数组更通用,所以我们通常使用它.