配列からオブジェクトを削除しようとしていて、同じタイプのオブジェクトですべてのプロパティを0で埋めようとしています。しかし、これを行うと、配列の値を再計算するときに何らかの理由で値がクリアされません。配列内のオブジェクトを正しく置き換えるには - C#
ここでは、オブジェクトを消去してその場所に空白を挿入する方法を示します。
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の配列を初期化し、値を1で空白の項目を交換するが、それはいただきました!私の問題を引き起こして削除問題はありません。
私はこれをやっているより多くの可能性のあるnoobish方法を許してください、私はちょうどC#を開始し、学習経験としてこのプロジェクトをやっています。すべての入力をいただければ幸いです!
なぜ 'itemsInbuildArray [arraySlot] = blank'ですか? –
この「空白」オブジェクトはどこから来ていますか(コードの4行目)、どのように作成しますか? – Svilen
もう少し情報を与える必要があります - あなたは3つの配列のようなオブジェクトを持っているようです - 少なくとも1つのitemsInbuildArrayは実際には配列ではなくArrayListです。 – iandotkelly