在Unity中将字典键转换为数组

时间:2014-06-16 16:23:15

标签: c# unity3d

如何转换字典键'在Unity 4.3中的数组? (除了手动,当然

This solution似乎无法发挥作用,我对此感到困惑。

代码:

private Dictionary<int,Client> uid2Client;
public static int[] uidList
{
    get
    {
        return instance.uid2Client.Keys.ToArray();
    }
}

错误:

  

Assets / sources / ClientServer.cs(144,57):错误CS1061:类型   `System.Collections.Generic.Dictionary&LT; INT,客户机GT; .KeyCollection&#39;不   不包含`ToArray&#39;的定义没有扩展方法   `ToArray的&#39;类型   `System.Collections.Generic.Dictionary&LT; INT,客户机GT; .KeyCollection&#39;   可以找到(你错过了使用指令或程序集   引用?)

2 个答案:

答案 0 :(得分:5)

ToArray()方法不是KeyCollection类的标准部分。它是由extension method添加的Linq

Using System.Linq;添加到类文件的开头。

答案 1 :(得分:0)

您可以尝试手动将密钥提取到数组中:

int[] getKeys()
{
    List<int> keys = new List<int>();
    var keycollection = uid2Client.Keys;
    foreach(var key in keycollection)
    {
        keys.Add(key);
    }
    int[] keyArray = keys.ToArray();
    return keyArray;
}