Use List<T> or simple Array (array is optional but not recommended for this!).
If your amount is some monetary value then you can try using:
decimal[] arr = new decimal[arraySize];
or:
List<decimal> list = new List<decimal>();
If not change decimal to whatever data type you like: int, long and etc.
Edit:
Some performance and memory tests:
All collections are type of `int`
Maximum collection size: 1000000
Random generated index used for value lookup: 354497
Array populating time elapsed: 00:00:00.0063499
Array lookup time elapsed: 00:00:00.0000004
Size: 4000028 bytes
==============
List populating time elapsed: 00:00:00.0184629
List lookup time elapsed: 00:00:00.0000004
Size: 4194509 bytes
==============
Dictionary populating time elapsed: 00:00:00.0593676
Dictionary lookup time elapsed: 00:00:00.0000293
Size: 17001335 bytes
Code: https://gist.github.com/rekosko/999e58dc95ba3e4fc678
ArrayListanymore. It belongs old days that C# doesn't have Generics. UseList<T>instead.List<T>as @SonerGönül said before or simpleArray... butArraymay be inapropriate for this if it should dynamically change its size.Dictionary?