我有很多对象(例如10.000,或多或少)。每个对象都有3个值:
我需要根据索引值执行一些搜索。这将是一个轻松的approch? List<MyObject>
?我知道有哈希表,但只有2个值......
我从.csv文件中读取这些值,然后将其存储在应用程序中。 WebForm,.NET 4.5。
答案 0 :(得分:4)
就内存使用而言,最轻的方法是将它们放入一个结构中,并将它们保存在这样的结构数组中。根据你的说法,你不能真正打包数据比任何更紧:两个双精度数和一个十进制数将占用每个条目32个字节,并且结构数组不会在此基础上添加任何每个项目的开销。
话虽如此,这会减慢你的编码速度,并且在实践中可能会节省太少的东西。
答案 1 :(得分:2)
为什么不使用这样的词典:
public class Position
{
public Latitude Latitude { get ; set ; }
public Longitude Longitude { get ; set ; }
}
public Dictionary<decimal,Position> Positions ;
或者在字典中使用元组:
public Dictionary<decimal,Tuple<Latitude,Longitude>> Positions ;
答案 2 :(得分:1)
我认为绝对最轻的方法是将你的值掩盖成无符号长,尽管它有点麻烦。
要真正掌握最有效的方法,我建议尝试使用测试值并查看sizeof()的输出。这样你就可以确定它们的运行时内存大小。
我建议使用自定义结构来保存您的值,元组也可以正常工作。