【发布时间】:2016-05-24 09:19:53
【问题描述】:
我有一个 .txt 文件,我在我的程序中处理成一个列表。
我想以某种方式保存该列表并将其包含在程序本身中,以便每次程序启动时都会加载它,因此我不必每次都从 .txt 文件中处理它。
它比“int x = 3;”更复杂因为它有 10k 行,我不想在开头复制粘贴所有内容。
我找遍了,但没有发现任何类似的东西,有什么想法吗? 另外,如果你有一个解决方案,它可以与任何类型(数组、字典)一起使用吗?
根据要求,代码为:
var text = System.IO.File.ReadAllText(@"C:\Users\jazz7\Desktop\links_zg.txt");
编辑
Joe 提出了解决方案: 将文件包含在项目中,将其“构建操作”设置为属性中的嵌入资源并使用此代码:
private string linkovi = "";
...
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "WindowsFormsApplication4.links_zg.txt";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
linkovi = reader.ReadToEnd();
}
string linkovi 现在包含 txt 文件并且现在在应用程序中。谢谢大家!
【问题讨论】:
-
您将不得不将其保存在某个地方。如果没有硬编码,则在文件或数据库中。恐怕没办法。
-
是.txt文件的加载问题(例如速度问题)还是其他问题?
-
是的,处理大约需要 10 秒,我想避免这种情况,并从一开始就准备好 LIst,因为文件值永远不会改变。
-
即使处理 10k 行也不应该花费 10 秒。向我们展示该文件的摘录以及您当前用于处理它的代码。
-
你说得对,刚回到我的笔记本电脑上,试了一下,它几乎立即完成。我很抱歉。但我仍然希望在 .exe 中包含文件或列表,因为我会将其从 PC 移动到 PC,并且希望将所有内容都放在一个文件中。