【发布时间】:2019-07-28 03:49:13
【问题描述】:
我正在尝试对保存在文本文档中的日期进行排序,我已使用列表完成此操作。当我尝试将详细信息保存回文本文档时,在文档中我看到的只是保存的是
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]
【问题讨论】:
-
如标记的重复项中所述,当您看到一个类型的名称时,您看到的是
ToString()的默认实现。当这是一个列表时,您真正想要的几乎总是以某种方式将列表的内容表示为文本,而不是列表对象本身。请参阅标记的副本以了解实现此目的的各种技术。 -
彼得——这只是问题的一部分。阅读我对下半年的评论。