我有大数据集,我需要Dictionary
关键条目。键是7个数字,所以int16
不适合。
我想节省空间,因为int32
可以使用32位。
Dictionary<int32,.....>
那么如果我使用string
,这会节省空间吗?因为我的string
总是长度为7。
Dictionary<string,....>
System.Int32
或int
可以存储最多9位数的所有数字加上一些10位数字,并且需要4个字节。 System.String
或string
每个字符需要2个字节加上最后一个0字符的2个字节,存储长度(4个字节)的开销+与对象相关的开销,加上字典本身需要存储对字符串的引用,在64位系统上有8个字节。与int
相比,字符串需要更多存储空间并且处理速度慢。
见:How much memory does a C# string take up?
用一个
Dictionary<int, TValue>