I did some tests 14y later (MacOS - JetBrains Rider - NET 9.0 - no changes to project configuration):
Starting from size/count which is an int datatype and its max value is = 2.147.483.647:
int[]: max size is 2.147.483.591 (> values generate: Out of Memory)
Dictionary<int,int>: max reached at 2.147.483.587 (exception: Hashtable's capacity overflowed and went negative)
List<int>, Stack<int> Queue<int>: max size (and capacity too) set to 2.147.483.591
HashSet<int>: max reached 2.147.483.587 (exception: Hashtable's capacity overflowed and went negative)