【发布时间】:2017-07-19 16:31:26
【问题描述】:
我现在有一本字典,它使用string 作为键,GameObject 作为值。
字符串都是IP地址,所以不是很长。这是一个例子:
string ip = "192.68.137.1"
我知道数字比较比字符串快得多,而且我能够在我的数据库服务器中解析 IP 地址。
使用整数数组作为字典的 KEY 会更快吗?像这样:
int[] ip = { 192, 168, 137, 1 }
我正在定期检查字典是否包含某些值,并定期添加到字典中(通常至少每秒一次)。
我对此感到困惑的原因是因为我使用的字符串(IP 地址)总是在那个长度左右,那么使用整数数组会有什么真正的好处吗?如果字典每次都必须遍历 4 个数字,我不知道这比字符串比较快多少。
【问题讨论】:
-
更好的是,您可以简单地使用 int 作为键。 IP 基本上是一个 4 字节的列表(几乎是一个 int)。例如,“192.68.137.1”等价于 0xc0a88901。
-
IP 地址适合一个 Int32 :)
-
如何将这些字符串或数组转换为一个 int?
-
吹毛求疵:
int[] ip = [192,168, 137,1]不是有效的 c#。应该是int[] ip = {192,168, 137,1}(即大括号) -
因为这是每秒完成一次,所以应该没有问题。
标签: c# string dictionary unity3d int