【发布时间】:2016-12-21 20:59:56
【问题描述】:
Random rand = new Random();
var list = new object[] { 1, 2, 3, "A", "B", "C" };
object item = list[rand.Next(0, list.Length)];
我想返回 item 然后将其从 list[]
中删除【问题讨论】:
-
可以通过分配一个标记值(即 null,并可能滑动其他值)来“删除”该项目,但是 在 .NET 中无法更改数组的大小我>。可以创建一个新数组 .. 这就是说,
List(或更改可变要求)可能是正在寻找的东西。 List 在内部使用数组,根据需要创建更大的数组和滑动值。 -
数组不是这样工作的。您需要将数组(减去已删除的元素)复制到长度少一个的新数组中。但这非常低效,这就是
List<T>存在的原因。除非数组具有不会改变的固定长度,否则请改用List。
标签: c#