【发布时间】:2011-10-12 22:56:48
【问题描述】:
我正在尝试从数组中删除一个对象,并用一个相同类型的对象填充插槽,但所有属性都为 0。但是当我这样做时,由于某种原因,当我重新计算数组值时,这些值并不清楚。
以下是我如何清除一个对象并在其位置插入一个空白对象。
public void clearOutBox(int arraySlot)
{
itemsInbuildArray.Remove(itemsArray[arraySlot]);
itemsInbuildArray.Insert(arraySlot, blank);
itemInBuildPictureArray[arraySlot].ImageLocation = null;
statCalculation();
}
//one of the lines from the statCalculation method.
statsHealth.Text = (Convert.ToString(itemsInbuildArray.Sum(hp => hp.Health)));
public partial class Form1 : Form
{
List<Item> itemsArray = new List<Item>();
List<PictureBox> itemInBuildPictureArray = new List<PictureBox>();
List<ToolTip> itemInBuildTooltipArray = new List<ToolTip>();
List<Item> itemsInbuildArray = new List<Item>();
Item blank = new Item(); // this is one of several objects created here
}
我用其中的 6 个空白项初始化数组,用值替换一个空白项没有问题,但删除它是导致我出现问题的原因。
请原谅我这样做的方式很可能是愚蠢的,我刚刚开始 C# 并将这个项目作为学习经验。任何意见表示赞赏!
【问题讨论】:
-
为什么不只是
itemsInbuildArray[arraySlot] = blank? -
这个“空白”对象来自哪里(代码中的第 4 行)以及如何创建它?
-
您需要提供更多信息 - 您似乎有 3 个类似数组的对象 - 其中至少一个 itemsInbuildArray 实际上是 ArrayList 而不是 Array。