What is the maximum amount of objects that can be stored in an Array or List without causing any error?

I am planning to create a replay system for my game, and I decided (after reading a few forums) that storing the position and rotation of the players every frame is what I should do. Then when I view the replay, I just make the position of the object and rotation update according to the array. Now I decided to use a class to store the transforms of several moving parts of the car, such as the tires, the player’s bones (armature), and the car itself. Basically the object will have references to a few transforms, and an array of many transforms (about 30). Now this has gotten me wondering if there would be any errors or performance problems storing several (1 per every frame) objects inside a huge List<>. Is this an alright approach or is there something else that I should do?

According to Array Class (System) | Microsoft Learn


The array size is limited to a total of 4 billion elements, and to a maximum index of 0X7FEFFFFF in any given dimension (0X7FFFFFC7 for byte arrays and arrays of single-byte structures).

.NET Framework only: By default, the maximum size of an Array is 2 gigabytes (GB). In a 64-bit environment, you can avoid the size restriction by setting the enabled attribute of the gcAllowVeryLargeObjects configuration element to true in the run-time environment.


The maximum index is the max value of an int32, both the array and list use an int32 for indexing. (I don’t see how you can get the the 4 billion elements when int32 goes to 2 billion) So you don’t need to worry about that part; Even if you do 60 objects per second, it would take over a year running non-stop to hit 2 billion.

The max memory size of 2GB would be your limiting factor. You would need to find out the size of one of your objects is to find how much you can hold.