Longueur maximale de byte[]?

Je suis en train de créer un tableau de bytes dont la longueur est UInt32.MaxValue. Ce tableau est essentiellement une petite(ish) base de données en mémoire:

byte[] countryCodes = new byte[UInt32.MaxValue];

Sur ma machine, cependant, au moment de l'exécution, je reçois un System.OverflowException avec "opération Arithmétique a entraîné un dépassement de capacité".

Quel est le problème? Dois-je utiliser un unsafe bloc et malloc? Comment pourrais-je le faire en C#?

  • Je n'avais aucune idée qu'il y avait tellement de nombreux pays!