首页 > 解决方案 > 在 C# 数组中有空索引是不好的做法吗?

问题描述

我在 C# 中有一个二维数组,其中包含数百个对象的数据。如果我用于填充数据的数组索引值从大于 0 的值开始,将其前面的索引留空,我是否会失去所有空数组空间的性能?

例如,如果我有一个数组:

Object[,] objectArray = new Object[1000, 1000];

我用对象填充索引 x: 500-999 && y:500-999,并将索引 0-499 留空,我是在失去性能还是内存,还是可以忽略不计。

随着程序的运行,我将来可能需要索引,但在程序的大部分生命周期中,它们将是空的。(对于上下文,空白区域是游戏中玩家可以探索的瓷砖,使用索引作为坐标)

我应该只创建一个新数组并在需要时填充它吗?

编辑以更具体地针对我的情况。

标签: c#

解决方案


不,您并没有失去性能,只是失去了可以忽略不计的内存量。

事实上,只要你有内存,这样的数组将比在存在和不存在的情况下查找更小的数组更有性能。(有根据的猜测,每个对象将是大约 8-16 个字节。)


推荐阅读