私はいくつかの研究をしましたが、運が悪い、まだ一般的にはプログラミングに比較的新しい、コード効率に関するヒントは非常に高く評価されています。私のコレクションの内容をCSVファイルに書き込む方法は?
私の採点機能の1つ、または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
そこに書類の良いビット、仲間、ありがとう。 –
_Standand巨人の肩の上に!_そして巨人が落ちないようにする;) – Fabio