我正在尝试开发一个Xna项目并制作一个碰撞检测机制。我有一个像这样的Dictionary对象:
Dictionary<string, int> boneIndices = new Dictionary<string, int>();
我想从这个字典中获取indixes,如上面一行:
int boneIndex = this.animator.skinningData.BoneIndices;
但我接受了一个主题错误。
如何解决这个错误?
答案 0 :(得分:7)
您忘记提供查找值的键,如下所示:
int boneIndex = this.animator.skinningData.BoneIndices["someKey"];
错误的含义是您将类型Dictionary<string, int>
的整个字典分配给int
类型的变量。除了我向你展示的使用索引器之外,还有其他一些方法可以从字典中获取值。您可以在MSDN上找到它们。
答案 1 :(得分:1)
如果您不确定字典中是否存在密钥,则可以使用TryGetValue
采取更安全的方法:
string key = "key";
int indice = 0;
if (!animator.skinningData.BoneIndices.TryGetValue(key, out indice)
{
// If you get here, the key doesn't exist
}
如果密钥不在字典中,则直接使用索引器可能会抛出KeyNotFoundException
。