Как перевернуть массив и получить первый элемент с помощью LINQ

references — это массив пользовательского типа ChaptersReferenceBase[]

Я хотел бы перевернуть массив перед получением первой ссылки на основе некоторого состояния.

Почему это происходит в моем юнит-тесте Unity? Как мне перевернуть массив и получить правильный элемент.

   public ChaptersReferenceBase GetAvailableReference() // This works but doesn't reverse the array
    {
        foreach (var item in references)
        {
             if (item.State == StorageSlot.Available) return item;
        }
        return null;
    }

   public ChaptersReferenceBase GetAvailableReference() // This works but doesn't reverse the array
    {
        return references.First(reference => reference.State == StorageSlot.Available);
    }

   public ChaptersReferenceBase GetAvailableReference() // Throws nullReferenceException
    {
        Array.Reverse(references);
        return references.First(reference => reference.State == StorageSlot.Available);
    }

   public ChaptersReferenceBase GetAvailableReference() // Throws nullReferenceException
    {
        return references.Reverse().First(reference => reference.State == StorageSlot.Available);
    }
Мир
Вопрос задан27 февраля 2024 г.

1 Ответ

2
Натан
Ответ получен14 сентября 2024 г.

Ваш ответ

Загрузить файл.