gpt4 book ai didi

c# - 是否可以在编译时填充查找表? C#

转载 作者:太空狗 更新时间:2023-10-30 00:57:47 25 4
gpt4 key购买 nike

我有一个相当大的哈希表,其中填充了仅供查找的静态数据。

这意味着当程序启动时,我要么有一个很长的初始化程序/构造函数方法来执行许多 hashtable.Add() 方法(yuk),要么从我自定义生成的资源文件中反序列化编码时间。

我可以使用属性或其他方式在编译时包含此数据吗?

最佳答案

如果您的数据是严格静态的(或足够静态以至于您可以在程序中对其进行硬编码),那么您可以将所有值放在一个 switch 语句中。不能真的说它是不是一个好主意,但它似乎并不比加载哈希表更糟糕。从好的方面来说,“哈希表”初始化确实变成了一个严格的编译时操作:

public int Lookup(int key)
{
switch (key)
{
case K1: return V1;
case K2: return V2;
case K3: return V3;
case K4: return V4;
case K5: return V5;
case K6: return V6;
case K7: return V7;
default: return V_WHOOPS;
}
}

如果值的数量很大,您可以编写一个脚本来生成代码,而不是手动输入。

关于c# - 是否可以在编译时填充查找表? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com