Pourquoi ne puis-je initialiser une Liste comme un tableau en C#?

Aujourd'hui, j'ai été surpris de trouver qu'en C# je peux le faire:

List<int> a = new List<int> { 1, 2, 3 };

Pourquoi ne puis-je faire cela? Ce constructeur est appelé? Comment puis-je faire avec mes propres classes? Je sais que c'est la façon d'initialiser les tableaux, mais les tableaux sont en langue et les Listes sont des objets simples ...

  • Cette question peut être vous aider: stackoverflow.com/questions/1744967/...
  • Assez impressionnant hein? Vous pouvez le faire très semblable code pour initialiser les dictionnaires ainsi: { { "key1", "value1"}, { "key2", "value2"} }
  • À partir d'un autre point de vue ce tableau comme syntaxe d'initialisation nous donne un rappel que le type de données d'un List<int> est en fait une matrice seule. Je déteste l'équipe C# pour le fait qu'ils ont pas de nom, il ArrayList<T> qui semble si évident et naturel.