c# - Unity:列表变量数组。如何在 C# 中正确声明它
问题描述
我需要在 Unity 中声明一个列表变量数组。数组大小是固定的,它是 5。我的代码按我的意愿工作,但我认为必须有更好、更短的方法来做到这一点:
public List<GameObject>[] charactersOnBoardSortedP1 = new List<GameObject>[] {new List<GameObject>(), new List<GameObject>(), new List<GameObject>(), new List<GameObject>(), new List<GameObject>() };
我试着这样做:
public List<GameObject>[] charactersOnBoardSortedP1 = new List<GameObject>[5];
但我有一个错误:对象引用未设置为对象的实例。
有什么方法可以更简单地声明我的变量吗?我的意思是如果我的阵列只有 5 个插槽就可以了,但如果是 100 个呢?复制新列表有点愚蠢......在声明中复制了 100 次。
解决方案
尝试这个
var arraySize=6; //or what size you need
List<GameObject>[] charactersOnBoardSortedP1 = new List<GameObject>[arraySize];
charactersOnBoardSortedP1= charactersOnBoardSortedP1
.Select(obsp => obsp = new List<GameObject>())
.ToArray();
或者如果您需要同时启动更多的东西
for (var i=0; i< charactersOnBoardSortedP1.Length; i++)
{
charactersOnBoardSortedP1[i]=new List<GameObject>();
// if you need to add some elements in the same time
charactersOnBoardSortedP1[i].Add(new GameObject {Id=i});
}
推荐阅读
- java - 在一个面板的不同类实例中使用 repaint()
- sql - mssql nodejs:在整个承诺链中使用连接池
- mysql - 想要获得超过 15 条评论的类别的帖子
- android - 电子邮件 Gmail 后台安全异常
- amazon-web-services - 是否可以使用在打包程序配置程序上运行的脚本的输出来为生成的 AMI 创建标签?
- python - 获取真值的长度
- dotnetnuke-7 - DNN - 在 javascript 中获取用户角色
- octopus-deploy - 一个版本可以有多个章鱼部署过程吗?
- c# - 从 git bash 窗口管道到 .NET 应用程序时,STDIN 停止
- python - 计算熊猫数据框列值和给定字符串之间的编辑距离