无法将类型Dictionary <string,int>隐式转换为int </string,int>

时间:2014-10-23 07:10:34

标签: c# dictionary

我正在尝试开发一个Xna项目并制作一个碰撞检测机制。我有一个像这样的Dictionary对象:

Dictionary<string, int> boneIndices = new Dictionary<string, int>();

我想从这个字典中获取indixes,如上面一行:

 int boneIndex = this.animator.skinningData.BoneIndices;

但我接受了一个主题错误。

如何解决这个错误?

2 个答案:

答案 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