Почему компилятор C # создает закрытый DisplayClass при использовании метода LINQ Any () и как этого избежать?

У меня есть этот код (весь код не важен, но можно увидеть наэта ссылка):

internal static class PlayCardActionValidator
{
    public static bool CanPlayCard(...)
    {
        // ...
        var hasBigger =
            playerCards.Any(
                c => c.Suit == otherPlayerCard.Suit
                     && c.GetValue() > otherPlayerCard.GetValue());
        // ...
    }
}

Например, после открытия кода в декомпиляторе (ILSpy) я заметил существование вновь созданного класса<>c__DisplayClass0_0&nbsp;компилятором C #:

Это не было бы проблемой для меня, если бы этот код не был критичным для производительности системы. Этот метод вызывается миллионы раз, и сборщик мусора очищает эти<>c__DisplayClass0_0&nbsp;случаи, которые замедляют производительность:

Как я могу избежать создания этого класса (его экземпляров и их сбора мусора) при использованииAny&nbsp;метод?

Почему компилятор C # создает этот класс и есть ли альтернативаAny()&nbsp;Я могу использовать?