Если у меня есть текстовый файл со списком имен, как я могу сначала отсортировать этот список по фамилиям, используя C #? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь написать программу, которая будет читать текстовый файл со списком имен, перечисленных как

Майкл Джордан

Коби Брайант

Ларри Берд

Леброн Джеймс

Я написал код, чтобы открыть файл, переписать файл и включил его.

После загрузки, как я могу отсортировать этот список по фамилии, а затем по имени?

List<string> cstrName = new List<string>();

    private void Sorter_Load(object sender, EventArgs e)
    {
        try
        {
            //Load the array with the data in the file
            FileStream nameFile = new FileStream("input.txt",FileMode.Open); 

            StreamReader nameStreamReader = new StreamReader(nameFile);
            while (nameStreamReader.Peek() != -1)
            {
                cstrName.Add(nameStreamReader.ReadLine());
            }//End Loop
            nameFile.Close();      //Close file
        }
        //Sets an error message if there is an issue opening the file
        catch (Exception ex)
        {
            MessageBox.Show("Error Opening File. Data not loaded " + 
            ex.Message,"File Not Found",
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
     private void btnSortByName_Click(object sender, EventArgs e)
     {
        {
            cstrName.Sort();
        }

        //display names in a list box
        displayNames();
     }

    private void button1_Click(object sender, EventArgs e)
    {
        System.IO.File.WriteAllLines("input2.txt", cstrName);
        this.Close();
    }

1 Ответ

0 голосов
/ 30 апреля 2019

Поменяйте местами cstrName.Sort(); на

cstrName = cstrName.OrderBy(x => x.Split(' ').Last()).ToList();

Убедитесь, что у вас есть Using System.Linq; вверху вашего файла.

Упорядочивает cstrName по последнему слову в строке (вычисляя слова, разделяя строку на пробелы '').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...