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

本文关键字:转换 数组 字典 Unity | 更新日期: 2023-09-27 18:08:54

如何将字典键'转换为Unity 4.3中的数组?(当然不是手动的)

这个解决方案似乎不起作用,我不明白为什么。

代码:

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

Assets/sources/ClientServer.cs(144,57):错误CS1061: Type"System.Collections.Generic.Dictionary< int,客户端>。KeyCollection "不包含' ToArray'的定义和扩展方法类型为的ToArray"System.Collections.Generic.Dictionary< int,客户端> .KeyCollection"可以找到(您是否缺少using指令或程序集?参考?)

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

ToArray()方法不是KeyCollection类的标准部分。这是Linq添加的扩展方法。

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

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

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;
}
int[] KeysToArray(){
    int[] array = new List<int>(dictionary.keys).ToArray();
    return array;
}