gpm*_*dam 0 c# compression portability dictionary
应用程序
我正在研究一个简单的字典搜索工具,其主要目的是搜索大约180,000个单词的单词列表.
首先,单词列表是一个纯文本文档,每个单词都在一行上.加载后,单词列表被处理成一个简单的数组进行搜索.
目标
我的目标是将应用程序分发为单个可移植的可执行文件,因此我必须以某种方式将单词列表打包在应用程序中.
我的尝试
在我第一次尝试时,我只是自动生成一个数组定义,并将其包含在项目中(因此,不是加载文件和创建数组,我在项目中有一个文字数组),看起来有点像这样:
// Auto-generated word-list
public string[] WordList = new string[178691];
WordList[0] = "AA";
WordList[1] = "AAH";
// ...
WordList[115383] = "PHOTONEGATIVE";
WordList[115384] = "PHOTONIC";
WordList[115385] = "PHOTONICS";
WordList[115386] = "PHOTONS";
WordList[115387] = "PHOTONUCLEAR";
WordList[115388] = "PHOTOOXIDATION";
WordList[115389] = "PHOTOOXIDATIONS";
WordList[115390] = "PHOTOOXIDATIVE";
WordList[115391] = "PHOTOOXIDIZE";
WordList[115392] = "PHOTOOXIDIZED";
WordList[115393] = "PHOTOOXIDIZES";
WordList[115394] = "PHOTOOXIDIZING";
WordList[115395] = "PHOTOPERIOD";
// etc...
Run Code Online (Sandbox Code Playgroud)
这实现了完全可移植的目标,整个项目的文件大小保持不变.
然而,通过以这种方式接近它而改变的一件事是构建和运行时间的增加,这可以被认为是一个小的和不可避免的问题,但理想情况下应该缩短.
问题
是否有任何方法可以将大型(~180,000字)字典组合到便携式/独立应用程序中,可能使用某种压缩技术来降低文件大小,但最终要保持合理的加载时间,这是比一个简单的,预定义的文字数组"更受青睐"?