基本上,我有一个class
和一个form
。在我的class
中,我在下面编写了变量。这些变量是我将数据保存在form
中的位置:
Save.cs
namespace CSV
{
public partial class Save
{
public static string people = string.Empty;
public static List<string> mileage_list = new List<string>();
}
}
然后在我的form
中,创建了一个事件,并通过FormClosed
调用了该事件。 已编辑:每次单击按钮,textbox1
都会清除,我可以添加新值。所有这些值都保存在列表中
Form1.cs
public void Savetocsv()
{
Type s = typeof(Save);
FieldInfo[] fields = s.GetFields(BindingFlags.Public | BindingFlags.Static);
StringBuilder csvdata = new StringBuilder();
string header = String.Join("|", fields.Select(f => f.Name).ToArray());
csvdata.AppendLine(header);
string first = Save.people;
string newLine = string.Format("{0}", first);
csvdata.AppendLine(newLine);
string mileage = String.Join("|", Save.mileage_list.ToArray());
csvdata.AppendLine(mileage);
string filepath = @"C:\Vehicles.csv";
File.WriteAllText(filepath, csvdata.ToString());
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
Save.people = Combobox1.SelectedItem.ToString();
Save.mileage_list.Add(Textbox1.Text);
Savetocsv();
}
private void button1_Click(object sender, EventArgs e)
{
Save.people = Combobox1.SelectedItem.ToString();
Save.mileage_list.Add(Textbox1.Text);
TBmileage.Text = "";
}
当我打开 Vehicles.csv 文件时,来自Save.people
的字符串是正确的,但是来自Save.mileage_list
的字符串被写为 System.Collections.Generic。 List1 [System.String] 。因此,我可能知道如何重写代码以正确导出两个字符串值。
已编辑
以前,这些值是错误的,但会在其各自的标题中导出。参见Image 1。但是,使用此代码,值是正确的,但未在其各自的标头中导出。 Image 2。我知道我可能需要做一个Dictionary
或for
循环,但是我不知道该怎么做。