public class ClassTest {
private GameObject o; public GameObject Obj{ get{ return o; } set{ o = value; }}
......
}
private ClassTest ArrayTest = new ClassTest [100];
.....
for(byte i = 0; i < ArrayTest .Length; ++i){
if(i == 4 || i == 56) ArrayTest [i] = new ClassTest { Obj = SomeObj .... };
else ArrayTest [i] = null;
}
.....
for(byte i = 0; i < ArrayTest .Length; ++i){
if(ArrayTest [i] != null){ ....
var itemsCount = 100;
// Исходный массив.
var ArrayTest = new string[itemsCount];
// Количество не нулевых элементов.
var counter = 0;
// Для хранения индексов не нулевых элементов.
var ArrayTestIndex = new int[itemsCount];
for (byte i = 0; i < ArrayTest.Length; ++i)
{
if (i == 4 || i == 56) // Очень сложное условие.
{
ArrayTest[i] = $"Это не нулевой объект #{i}";
// Считаем количество не нулевых элементов.
counter++;
// Сохраняем индекс текущего элемента.
ArrayTestIndex[counter - 1] = i;
}
else
{
ArrayTest[i] = null;
}
}
// Отрезаем пустые элементы в реестре индексов.
Array.Resize(ref ArrayTestIndex, counter);
for (byte i = 0; i < ArrayTestIndex.Length; ++i)
{
// Индекс не нулевого элемента исходного массива.
var index = ArrayTestIndex[i];
// Делаем что хотим.
Console.WriteLine(ArrayTest[index]);
}