亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

修復 C# 中的“System.Collections.Generic.List`1”

修復 C# 中的“System.Collections.Generic.List`1”

C#
精慕HU 2023-07-22 17:05:47
我正在嘗試對文本文檔中保存的日期進行排序,我已經使用列表完成了此操作。當我嘗試將詳細信息保存回文本文檔時,在文檔中我看到保存的所有內容是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);

這樣,文本文件中的數據是相同的,但只是按排序順序排列。


查看完整回答
反對 回復 2023-07-22
  • 1 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號