如何设置每次在C#Winform中加载的List?

时间:2016-05-24 09:19:54

标签: c# winforms

我有一个.txt文件,我在我的程序中处理列表。

我想以某种方式保存该List并将其包含在程序本身中,以便每次程序启动时都加载它,因此我不必每次都从.txt文件处理它。

它比“int x = 3”更复杂;因为它有10k行,我不想复制粘贴开头的所有内容。

我看了一遍,但没有找到任何类似的,任何想法的家伙? 此外,如果你是一个解决方案,它可以用于任何类型(数组,字典)吗?

根据要求,代码为:

var text = System.IO.File.ReadAllText(@"C:\Users\jazz7\Desktop\links_zg.txt");

修改

乔提出了解决方案: 在项目中包含该文件,将其“构建操作”设置为属性中的嵌入资源,并使用以下代码:

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();
    }

字符串linkovi现在包含txt文件,现在位于应用程序中。谢谢大家!

2 个答案:

答案 0 :(得分:3)

您可以将文件存储为可执行文件中的资源。

This KB article介绍了如何操作。

答案 1 :(得分:1)

从根本上说,您必须选择将数据存储在内存中还是将其存储在硬盘驱动器上。前者将减少你的加载时间,但可能使用不可接受的内存量,而后者则更慢,正如你所确定的那样。无论哪种方式,您的数据都必须存储在某个地方。

您是否需要一次加载所有数据?如果加载时间是问题,您可以逐行处理文件。虽然这总体上会较慢,但您仍然可以更快地访问一些可用的数据。