Ich habe ein Windows-Formular, das einen StreamReader verwendet, um Formulardaten in einige Textfelder zu lesen. Das funktioniert ganz gut. Das Problem ist jetzt, dass ich die Daten aus der Datei alphabetisch nach Namen geordnet anzeigen möchte. Früh habe ich versucht eine Array.Sort-Methode, damit hat es nicht so gut funktioniert.Sortieren von Daten in der Reihenfolge von StreamReader
Hier ist mein Code:
Hinweis: Ich schließe die Leser und Datei im dispose-Methode.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace ViewArchives
{
public partial class Form1 : Form
{
const char DELIM = ',';
const string FILENAME = @"F:\lscSpring2016\CIS2620\FinalProject\TicketMaster\bin\Debug\SoldTickets.txt";
string recordIn;
string[] fields;
static FileStream file = new FileStream(FILENAME, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(file);
public Form1()
{
InitializeComponent();
}
private void btnView_Click(object sender, EventArgs e)
{
try
{
recordIn = reader.ReadLine();
fields = recordIn.Split(DELIM);
nameBox.Text = fields[0];
ticketsBox.Text = fields[1];
purchaseBox.Text = fields[2];
dateBox.Text = fields[3];
}
catch (NullReferenceException)
{
label5.Text = "You have viewed\nall the records filed.";
btnView.Enabled = false;
}
}
}
}
'Felder = recordIn.Split (DELIM) .OrderBy (x => x). ToArray(); ' – Eser
Flow-Kontrolle über Ausnahme ist nicht so ein tolles Design. Sie sollten den Rückgabewert von ReadLine() überprüfen; Wenn null, haben Sie das Ende der Datei erreicht. – glenebob
Warum hat Array.Sort() nicht funktioniert? – glenebob