如何读取数据一次,然后在C#中对所述数据执行多次操作?

pha*_*han 0 c# visual-studio-2010 winforms

我用3个按钮创建了一个WindowsForm应用程序.单击任何按钮可以读取c:\data.txt并执行不同的数据"分析".按钮1可能会添加数字data.txt,按钮2可能会对它们进行平均,按钮3可能会将它们相乘.

在每个下面private void button1_Click我都有一行代码从data.txt中读取数据.这对我来说似乎效率低下,因为在3个按钮点击事件中每个都有相同的"ReadLines"代码.

有没有办法只是ONCE读取数据,然后我的按钮执行他们的分析?

这样,"ReadLines"代码仅使用一次,并且数据以某种方式与任何button1_Click事件共享.

Ode*_*ded 5

这并不困难 - 您需要有一个字段来保存您读取的值 - 该字段将可用于该类中的所有函数.

 private string[] data;

 // in constructor:
 data = File.ReadAllLines(@"c:\data.txt");

 // in your methods, simply use data
Run Code Online (Sandbox Code Playgroud)

另一种选择是有LoadData来检查,如果方法datanull或不是从你的方法调用它:

private void LoadData()
{
  if(data == null)
    data = File.ReadAllLines(@"c:\data.txt");
}
Run Code Online (Sandbox Code Playgroud)