C# 2D 通用列表
C# 2D Generic List
我正在为使用 Unity 制作的游戏开发 talents/skills 树系统,我的 45 个天赋按钮有一个 class,如下所示:
public class SaveTalentClass {
public int talId;
public int talCurRank;
public int talMaxRank;
public SaveTalentClass(int id, int cRank, int mRank)
{
talId = id;
talCurRank = cRank;
talMaxRank = mRank;
}
}
我创建了 10 个 "Talent Lists" 这样玩家可以保存不同的天赋,我将这 10 个列表存储在另一个列表中以便于访问。所以我创建了一个二维列表:
public List<List<SaveTalentClass>> containerList = new List<List<SaveTalentClass>>();
并在其中添加了 10 "talent Lists",但现在我一直在尝试在此 2D 列表中 access/write。
我试过这样的测试:
containerList[0][0].Add (new SaveTalentClass(0,1,2));
但出现错误:SaveTalentClass' does not contain a definition for
Add' 并且找不到扩展方法 Add' of type
SaveTalentClass'(是否缺少 using 指令或程序集引用?)
我很确定有一个简单的解决方法,但我不知道该怎么做!
谢谢你帮助我:)
给出两个索引,您已经在第二个列表中。或者,如果要将新元素添加到外部列表中的列表之一,请使用
containerList[0].Add (new SaveTalentClass(0,1,2));
或者如果您想修改现有的:
containerList[0][0] = new SaveTalentClass(0,1,2);
既然你有containerList,你可以在上面添加一个类型的对象,在这种情况下是一个List of Lists。因此,添加一个新的 SaveTalentClass
列表,然后您可以通过 0
索引访问它以添加一个 SaveTalentClass
对象的对象,例如:
// add the first list in the containerList
containerList.Add(new List<SaveTalentClass>());
// add an item in the first list of containerList
containerList[0].Add(new SaveTalentClass(0,1,2));
我正在为使用 Unity 制作的游戏开发 talents/skills 树系统,我的 45 个天赋按钮有一个 class,如下所示:
public class SaveTalentClass {
public int talId;
public int talCurRank;
public int talMaxRank;
public SaveTalentClass(int id, int cRank, int mRank)
{
talId = id;
talCurRank = cRank;
talMaxRank = mRank;
}
}
我创建了 10 个 "Talent Lists" 这样玩家可以保存不同的天赋,我将这 10 个列表存储在另一个列表中以便于访问。所以我创建了一个二维列表:
public List<List<SaveTalentClass>> containerList = new List<List<SaveTalentClass>>();
并在其中添加了 10 "talent Lists",但现在我一直在尝试在此 2D 列表中 access/write。
我试过这样的测试:
containerList[0][0].Add (new SaveTalentClass(0,1,2));
但出现错误:SaveTalentClass' does not contain a definition for
Add' 并且找不到扩展方法 Add' of type
SaveTalentClass'(是否缺少 using 指令或程序集引用?)
我很确定有一个简单的解决方法,但我不知道该怎么做!
谢谢你帮助我:)
给出两个索引,您已经在第二个列表中。或者,如果要将新元素添加到外部列表中的列表之一,请使用
containerList[0].Add (new SaveTalentClass(0,1,2));
或者如果您想修改现有的:
containerList[0][0] = new SaveTalentClass(0,1,2);
既然你有containerList,你可以在上面添加一个类型的对象,在这种情况下是一个List of Lists。因此,添加一个新的 SaveTalentClass
列表,然后您可以通过 0
索引访问它以添加一个 SaveTalentClass
对象的对象,例如:
// add the first list in the containerList
containerList.Add(new List<SaveTalentClass>());
// add an item in the first list of containerList
containerList[0].Add(new SaveTalentClass(0,1,2));