Sorry, wenn ich unklar war das Hauptproblem ist ich versuche, eine Funktion zu schreiben, die die Marken aus meiner CSV-Datei und berechnet sie eine Bewertung, die Unterseite Code-Snippet ist der Problemcode.C# Ich bekomme meine Funktion, um eine Note zu akzeptieren und eine Note zurückgeben
Ich habe einige Probleme hier, nach 5 Stunden Dokumentation und Experimenten bin ich ziemlich erschöpft und habe nur ein kleines bisschen Fortschritte gemacht. Ich bin im wahrsten Sinne des Wortes ein Neuling, da ich erst vor ein paar Wochen mit C# angefangen habe.
Das Problem in aller Kürze, ich habe eine kleine Anwendung geschrieben, die eine CSV-Datei lädt (die CSV-Datei enthält einen Namen und eine Markierung), dann mit StreamReader den Inhalt trennen und sie unter ihren eigenen Werten in einer Liste speichern
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
}
}
Klassen im gleichen Namensraum
/// <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; }
}
Sobald ich meine Daten gespeichert werden verwaltet, begann ich versuche, eine Funktion zu schreiben, die MarksValue berechnet und dann eine Klasse zurückgibt auf der Grundlage der gespeicherten Marke in die CSV-Datei. Die Bewertungsparameter lauten: < 59 = Fehler, 60-78 = Kredit 79-89 = Unterscheidung, 90-100 = Auszeichnungen
Ein paar Dinge, die ich bisher versucht habe.
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;
*/
}
}
}
Versuchte es in Babysteps also zu tun, nur bekommen es die Klasse zu berechnen und eine Nachricht auf ihm drucken basiert, ist jede Hilfe ich danke Ihnen sehr geschätzt.
Und wo ist dein Problem? –
Entschuldigung, ich habe mich beworben, bevor ich die Post versehentlich ausgefüllt hatte. Problem ist, dass ich mich bemühe, eine Funktion zu schreiben, die Werte berechnet, die von meiner CSV-Datei in dem letzten Code Snippet gespeichert werden, sorry verwendete ich schlechte Formatierung? Zum ersten Mal habe ich hier gepostet, aber ich habe die FAQ gelesen. –
Wenn Sie die Summe der Noten für jede Person berechnen möchten - dann sollten Sie vielleicht LINQ GroupBy & Sum als eine mögliche Lösung betrachten - siehe https://StackOverflow.com/questions/6970070/linq-Lambda-group- durch-mit-Summe. Beachten Sie, dass Sie den MarksValue als numerischen Wert lieber als eine Zeichenfolge speichern sollten. – PaulF