El inicializador de colección vacío para la propiedad de lista da como resultado nulo

Cuando yoejecuta este código, no se inicializaThisIsAList a una colección vacía como esperaba ... en su lugarThisIsAList fue nulo

void Main()
{
    var thing = new Thing
    {
        ThisIsAList = {}
    };

    Console.WriteLine(thing.ThisIsAList == null); // prints "True"
}

public class Thing
{
    public List<string> ThisIsAList { get; set; }
}

¿Por qué no se trata de un error de compilación? ¿Por qué es el resultado?null?

Me preguntaba si tal vez había una conversión implícita sucediendo aquí, pero los siguientes intentos produjeron errores de compilación:

thing.ThisIsAList = Enumerable.Empty<string>().ToArray();
List<int> integers = { 0, 1, 2, 3 };

De acuerdo con la documentación de MSDN sobreinicializadores de colección, parece que un inicializador de colección básicamente solo maneja llamadasAdd() para ti. Así que busqué posibles sobrecargas paraList.Add, pero no encontré nada que creo que se aplicaría.

¿Alguien puede explicar lo que está pasando aquí desde la especificación de C #?

Respuestas a la pregunta(1)

Su respuesta a la pregunta