我做了一些研究,但没有运气,还是相对很新的总体规划,对代码效率任何提示都大加赞赏。如何将我的收藏内容写入CSV文件?
那么我将如何去运行它通过我的分级功能中的一个或更好,但一个CSV文件,该文件是逗号分隔后写我的收藏+等级的内容出一个文本文件。
我不断收到类似的问题cannot convert from 'string' to string[]
。我知道我可能在这里错过了一步,但我很难弄清楚它是什么。
这是我的列表格式,我从一个CSV文件中加载的值,然后分别存入FirstLastName和MarksValue。
下面是我的分级单选按钮,我设法让他们打印我的函数+ FirstLastName和MarksValue的输出到消息框,所以这是我的一个开始。
public class Marks
{
public string FirstLastName { get; set; }
public int MarksValue { get; set; }
//public string mySecondaryGrade { get; set; }
}
private void buttongradeStart_Click(object sender, RoutedEventArgs e)
{
// This runs through an if statement based on my radio buttons.
//Testing that radio buttons work with my if else if statements
// will change values to my grade function later
Grade grader = new Grade();
VET vetGrader = new VET();
PolyOveride overideVet = new PolyOveride();
Helper myhelperArray = new Helper();
string v;
//This is a check to see if any data has been loaded.
if (dLoad == true)
{
//var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
System.Windows.Forms.SaveFileDialog saveDialogue = new System.Windows.Forms.SaveFileDialog();
saveDialogue.Title = "Save File";
saveDialogue.FileName = "Graded-Assessment1.csv";
saveDialogue.Filter = "CSV Files(*.csv)|*.csv|Text Files(*.txt)|*.txt|All files(*.*)|*.*";
saveDialogue.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (saveDialogue.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var path = saveDialogue.FileName;
if (radioCollegeGrade.IsChecked == true)
{
foreach (Marks mMarks in myhelperArray)
{
File.WriteAllLines(path, v);
v = grader.CollegeGrade(mMarks.MarksValue);
System.Windows.Forms.MessageBox.Show(mMarks.FirstLastName + " " + mMarks.MarksValue + " " + v);
//System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.csv");
//file.WriteLine(mMarks.FirstLastName + " " + mMarks.MarksValue + " " + v);
//file.Close();
}
}
else if (radioVetGrade.IsChecked == true)
{
foreach (Marks mMarks in myhelperArray)
{
v = vetGrader.VETGrade(mMarks.MarksValue);
System.Windows.Forms.MessageBox.Show(mMarks.FirstLastName + " " + mMarks.MarksValue + " " + v);
}
}
else if (radioCompetency.IsChecked == true)
{
foreach (Marks mMarks in myhelperArray)
{
v = overideVet.VETGrade(mMarks.MarksValue);
System.Windows.Forms.MessageBox.Show(mMarks.FirstLastName + " " + mMarks.MarksValue + " " + v);
}
}
else
{
System.Windows.Forms.MessageBox.Show("I am not sure how you deslected a box!, you should probably select an option.");
}
}
else
{
System.Windows.Forms.MessageBox.Show("Placeholder Message");
}
}
else
{
System.Windows.Forms.MessageBox.Show("You have not selected a file for grading");
}
}
不知道有关这是怎样,但是这是我的助手类
public class Helper
{
public static List<Marks> arrayCSV = new List<Marks>();
public IEnumerator<Marks> GetEnumerator() { return arrayCSV.GetEnumerator(); }
}
我建议使用CsvHelper NuGet包 - 见https://joshclose.github.io/CsvHelper/的例子。编写自己的csv输出看起来很简单,但有很多问题。例如,如果用户名有逗号,会发生什么情况?站在巨人的肩膀上! – tofutim
好文档那里交配,谢谢。 –
_站在巨人的肩膀上!_ ..并希望巨人不会倒下;) – Fabio