作成してコレクションに貼り付けるオブジェクトがあります。
public class Level
{
private string id;
private List<LevelTypes> usableLevelTypes; // LevelTypes is an enum
private List<BlockTypes> levelMapping; // BlockTypes is also an enum
public Level(string id, List<LevelTypes> levelTypes, List<BlockTypes> incomingBlocks)
{
this.id = id;
this.usableLevelTypes = levelTypes
levelMapping = incomingBlocks;
}
これをステップスルーすると、各アイテムが正しく設定されていることがわかります。次に、オブジェクトはHashSetに配置されます。
次に、別のクラスがHashSetを反復処理して、各アイテムのオーバーロードされ.ToString()
たメソッドを呼び出します。
この時点で、ウォッチリストにこのクラスの関連するすべての変数があります。呼び出されたオブジェクト内のすべてが適切に設定されています。"id"、 "levelMapping"、および他の'やintを含む、リストにない他のすべての変数にはList<T>
、空であると報告される "usableLevelTypes"を除いて、適切な値が含まれています。
public override string ToString()
{
var s = new StringBuilder();
s.Append("ID: " + id);
s.Append(" Level Types: " + usableLevelTypes[0].ToString()); // At this point,
// this list should have at minimum one value in it. However, it is empty and
// will throw an exception stating as much.
return s.ToString();
}
.Clear()
使用可能なLevelTypesリストではどの時点でも呼び出されず、読み取り専用です。同じオブジェクト内の他のリストがリセットされていない場合、どのようにリセットできますか?