2013-03-10 85 views
2

我有一個字符串數組定義在另一個類中,它從我附加到rtfbox的textBoxes獲取它的值,並且我可以將此rtfBox以這種格式保存到文本文件中:在rtfbox和文本文件中排序/排序字符串數組

  1. 名字,姓氏,02/03/4567,89

  2. 約翰史密斯,1995年1月2日,100

  3. AA,BB,1995年1月2日,88

  4. CC,DD,08/09/7777,22

我使用追加此字符串數組到rtfbox:

return (Convert.ToString(studentID) + ", " + firstName + ", " + lastName + ", " + 
     dob + ", " + Convert.ToString(averageMark)); 

bc[0] = new Student(studentID, firstName, lastName, dob, averageMark); 

for (int i = 0; i < 1; i++) 
{ 
    string bcString = bc[i].bankCustomerToString() + "\r\n"; 
    richTextBox1.AppendText(bcString); 
} 

有一種方法我可以命令文本文件或活性rtfbox通過averageMark,然後通過dateofbirth一個按鈕?

+0

你到目前爲止嘗試過什麼?看起來你正在創建一個類型爲Student的數組,並在文本框中輸入值,所以你可以使用LINQ對數組進行排序,然後將其序列化(按照你當前的代碼) – 2013-03-10 22:29:33

+0

「學生」中的變量是什麼類型?即它們是「串」,「雙」等。 – tmwoods 2013-03-10 22:29:56

+0

請更新您的代碼。目前很難看到發生了什麼。您可以將文本文件加載到一個Student對象集合的內存中,然後使用LINQ對該集合進行排序,然後將已排序的集合存儲迴文件中,從而訂購文本文件。富文本框的字符串內容也是如此。 – 2013-03-10 22:31:05

回答

3

你可以使用LINQ:

var ordered = students.OrderBy(s => s.averageMark).ThenBy(s => s.dob); 
foreach(var student in ordered) 
    // richTextBox1.Append(.....); 

如果要降序排列,使用OrderByDescending和/或ThenByDescending