¿Por qué el compilador de C # crea DisplayClass privado cuando usa el método LINQ Any () y cómo puedo evitarlo?

Tengo este código (todo el código no es importante, pero se puede ver eneste enlace):

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

Después de abrir el código en descompilador (ILSpy), por ejemplo, noté la existencia de una clase recién creada<>c__DisplayClass0_0 por el compilador de C #:

Esto no sería un problema para mí si este código no fuera crítico para el rendimiento del sistema. Este método se llama millones de veces y el recolector de basura está limpiando estos<>c__DisplayClass0_0 instancias que ralentizan el rendimiento:

¿Cómo puedo evitar crear esta clase (sus instancias y su recolección de basura) cuando uso elAny ¿método?

¿Por qué el compilador de C # crea esta clase? ¿Hay alguna alternativa deAny() ¿Puedo usar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta