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 forAdd' 并且找不到扩展方法 Add' of typeSaveTalentClass'(是否缺少 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));