我正在嘗試對文本文檔中保存的日期進行排序,我已經使用列表完成了此操作。當我嘗試將詳細信息保存回文本文檔時,在文檔中我看到保存的所有內容是System.Collections.Generic.List`1[Event_Manager.Form3+MyClass]下面的代碼是用一個按鈕執行的,據說可以對日期進行排序,但我什至看不到這段代碼是否真的對日期進行了排序,因為我不斷得到System.Collections.Generic.List`1[Event_Manager.Form3+MyClass]保存而不是原始數據。我嘗試使用 .ToString() 來防止這種情況發生,但它仍然顯示保存到文檔中的保存輸出。 // Read the file and display it line by line. StreamReader file = new StreamReader("Events.txt"); List<MyClass> myClassList = new List<MyClass>(); while ((line = file.ReadLine()) != null) { string[] split = line.Split(','); MyClass myclass = new MyClass(); myclass.date = DateTime.Parse(split[2]); myClassList.Add(myclass); } file.Close(); // Sort the list by date List<MyClass> myClassListSorted = myClassList.OrderByDescending(x => x.date).ToList(); using (StreamWriter sr = new StreamWriter(@"Events.txt")) { foreach (var item in myClassList) { sr.WriteLine(myClassListSorted.ToString()); } sr.Close(); }我應該能夠看到我最初保存在文本文檔中的實際數據,但是帶有排序日期,而是它只是System.Collections.Generic.List`1[Event_Manager.Form3+MyClass]
1 回答

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
您正在循環訪問未排序的列表,然后嘗試寫入排序的列表對象(而不是排序列表內的項目)。接近尾聲時你應該這樣做:
foreach (var item in myClassListSorted)
{
sr.WriteLine(item.date.ToString());
}
根據需要設置日期屬性的格式。或者您可以將原始行保存在每個 MyClass 中,然后在排序后將該行寫入文件。
while ((line = file.ReadLine()) != null)
{
string[] split = line.Split(',');
MyClass myclass = new MyClass();
myclass.date = DateTime.Parse(split[2]);
MyClass.originalLine = line; // <---------
myClassList.Add(myclass);
}
然后在循環中:
sr.WriteLine(item.originalLine);
這樣,文本文件中的數據是相同的,但只是按排序順序排列。
- 1 回答
- 0 關注
- 169 瀏覽
添加回答
舉報
0/150
提交
取消