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)
我想返回项目然后从列表[]中删除它
你不能.请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> 比数组更通用,所以我们通常使用它.