我有很多对象(比如10.000,或多或少)。每个对象has3值:
我需要执行一些搜索,因为索引值。这件事的路灯是哪一个?List<MyObject>?我知道有哈希表,但只有两个值.
我从一个.csv文件中读取这些值,并将其存储在应用程序中。WebForm,.NET 4.5.
发布于 2012-10-29 17:18:32
你为什么不用这样的字典:
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 ;发布于 2012-10-29 16:37:02
在内存使用方面,最简单的方法是将它们放入结构中,并将它们保存在这样的结构数组中。按照您的说法,您不能再更严格地打包数据了:两个双倍和一个小数点将占用每个条目32个字节,而结构数组在此基础上不会增加任何每项开销。
尽管如此,这将减缓您的编码,并可能节省太少的问题,在实践中。
发布于 2012-10-29 16:37:46
我认为绝对最轻的方法是将你的值隐藏成一个没有签名的长,尽管它有点麻烦。
为了真正掌握哪种方法是最有效的方法,我建议使用测试值来尝试所有这些方法,并查看它们上的sizeof of ()输出。这样,您就可以确定它们的运行时内存大小。
我建议使用一个自定义结构来保存您的值,元组也可以工作。
https://stackoverflow.com/questions/13125814
复制相似问题