根据日期时间对文本文件记录进行排序

时间:2012-11-28 06:01:48

标签: c#

文本文件“Records.txt”this

LUNOTRM206|11/22/2012 15:16:36 PM DISPLAYING 
LUNOTRM206|11/22/2012 17:10:38 PM Password
LUNOTRM206|11/02/2012 10:16:44 PM MAINTENANCE 
LUNOTRM206|11/05/2012 15:16:44 PM Cheque 
LUNOTRM206|11/22/2012 15:16:44 PM USER NAME  
LUNOTRM206|11/10/2012 15:16:44 PM USER ROLE
LUNOTRM206|11/10/2012 19:26:44 PM LAST LOGIN 
LUNOTRM206|11/22/2012 15:16:44 PM CURRENT LOGIN 
LUNOTRM206|11/23/2012 15:16:50 PM SENIU DOOR 
LUNOTRM206|11/22/2012 10:16:48 PM DISPLAYING 
LUNOTRM206|11/22/2012 15:16:52 PM DISPLAYING 

我必须根据日期和时间将上述数据按降序排序

1 个答案:

答案 0 :(得分:0)

正如肯所说,你实际上需要先付出努力。下次确保先试试。

此外,如果您希望有人帮助您,您需要先清理文本文件,然后才能继续。你正在使用24小时的时间然后你有“10:16:48 PM”之类的东西,为什么它需要是PM,如果它是24小时时间跨度,例如“19:26:44 PM”。只需使用12小时的时间并按时间添加AM或PM即可轻松转换时间。

我已经清理了下面的文本文件以及添加了|分开最后一列。以下将为您提供一个排序列表

LUNOTRM206|11/22/2012 3:16:36 PM |DISPLAYING 
LUNOTRM206|11/22/2012 5:10:38 PM |Password
LUNOTRM206|11/02/2012 10:16:44 AM |MAINTENANCE 
LUNOTRM206|11/05/2012 3:16:44 PM |Cheque 
LUNOTRM206|11/22/2012 3:16:44 PM |USER NAME  
LUNOTRM206|11/10/2012 3:16:44 PM |USER ROLE
LUNOTRM206|11/10/2012 7:26:44 PM |LAST LOGIN 
LUNOTRM206|11/22/2012 3:16:44 PM |CURRENT LOGIN 
LUNOTRM206|11/23/2012 3:16:50 PM |SENIU DOOR 
LUNOTRM206|11/23/2012 10:16:48 AM |DISPLAYING 
LUNOTRM206|11/22/2012 3:16:52 PM |DISPLAYING 


 private void Form3_Load(object sender, EventArgs e)
    {

        string line;

        // Read the file and display it line by line.
        System.IO.StreamReader file =
           new System.IO.StreamReader("c:\\file.txt");

        List<MyClass> myClassList = new List<MyClass>();

        while ((line = file.ReadLine()) != null)
        {
            string[] split = line.Split('|');

            MyClass myclass = new MyClass();

            myclass.id = split[0];
            myclass.date = DateTime.Parse(split[1]);
            myclass.role = split[2];

            myClassList.Add(myclass);
        }

        file.Close();

        // Sort the list by date
        List<MyClass> myClassListSorted = myClassList.OrderByDescending(x => x.date).ToList();
    }

    class MyClass
    {
        public string id { get; set; }
        public DateTime date { get; set; }
        public string role { get; set; }
    }