申し訳ありませんがわかりにくければ主な問題はCSVファイルからマークを取得し、それらのグレードを返す関数を書くことです。コードスニペットは問題のコードです。C#マークを受け入れてグレードを返すように機能を取得する
5時間のドキュメンテーションと実験の後、私はかなり疲れてしまい、わずかな進歩を遂げました。私は数週間前にC#で始まったばかりなので、初心者の言葉の意味ではすべて私は初心者です。
簡単に言えば、CSVファイル(CSVファイルには名前とマークが含まれています)を読み込む小さなアプリケーションを作成してから、StreamReaderを使用してコンテンツを分離し、リスト内の独自の値同じ名前空間内
public void buttonOpen_Click(object sender, RoutedEventArgs e)
{
System.Windows.Forms.OpenFileDialog openDialog = new System.Windows.Forms.OpenFileDialog();
openDialog.Title = "Open File";
openDialog.Filter = "CSV Files(*.csv)|*.csv|Text Files(*.txt)|*.txt|All files(*.*)|*.*";
openDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (openDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
textBoxPath.Text = openDialog.FileName;
using (var reader = new StreamReader(openDialog.FileName))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
Marks myMarks = new Marks();
myMarks.FirstLastName = values[0];
myMarks.MarksValue = values[1];
Helper.arrayCSV.Add(myMarks);
System.Windows.Forms.MessageBox.Show(myMarks.MarksValue);
}
}
}
else
{
System.Windows.Forms.MessageBox.Show("You did not select a file");
//Wrap in try catch statement
}
}
クラス
/// <summary>
/// This takes the values from Marks and filters them for use.
/// </summary>
public class Helper
{
public static List<Marks> arrayCSV = new List<Marks>();
}
/// <summary>
/// The CSV Reads and then splits via the comma storing the values into the two strings below.
/// </summary>
public class Marks
{
public string FirstLastName { get; set; }
public string MarksValue { get; set; }
}
私は私のデータが保存され得ることができたら、私はMarksValueを計算する関数を記述しようとし始め、その後に保存されているマークに基づいてグレードを返しますCSVファイルグレーディングパラメータは、マークがある場合です。< 59 =失敗、60-78 =クレジット 79-89 =優等、90-100 =栄誉
私はこれまでに試したことがいくつかあります。どうもありがとうございました
namespace ICTPRG406
{
public class Grade
{
public int CollegeGrade(int a)
{
Marks myMarks = new ICTPRG406.MainWindow.Marks();
myMarks.MarksValue = a.ToString();
int answer = a;
return a;
/* if (a < 59)
{
MessageBox.Show("You failed");
}
else if (a >= 60 && a <= 78)
{
MessageBox.Show("Credit");
}
else if (a >= 79 && a <= 89)
{
MessageBox.Show("Distinction");
}
else if (a >= 90 && a <= 100)
{
MessageBox.Show("Honours");
}
else
{
MessageBox.Show("No Value Input");
}
return a;
*/
}
}
}
はそれに基づいてメッセージを等級を計算し、印刷するには、それを取得、すなわちベイビーステップでそれをやろうとした、すべてのヘルプは大歓迎です。
あなたの問題はどこですか? –
申し訳ありませんが、私は偶然に投稿を入力し終える前に提出しました。問題は、最後のコードスニペットで自分のCSVファイルに格納されている値を計算する関数を書くのに苦労しています。初めてここに投稿すると、私はFAQを通して読んだ。 –
各人のマークの合計を計算する場合は、LINQ GroupBy&Sumを1つの解決策として使用することをおすすめします。このhttps://stackoverflow.com/questions/6970070/linq-lambda-group- by-with-sum。 MarksValueは文字列ではなく数値として保存する必要があることに注意してください。 – PaulF