foreach循环中的orderby datetime查询

时间:2012-04-17 02:05:49

标签: c# linq

您好我有一个休息服务,其中有一个学生列表,每个学生都有一个日期时间附加到那里创建。

在我的客户端,我想从最新的日期时间开始订购,在我的客户端,代码看起来像这样:

   public FindStudent()
    {
        InitializeComponent();
        string uriGroups = "http://localhost:8000/Service/Student";
        XDocument xDoc = XDocument.Load(uriGroups);

它列出了第一次创建的学生,我想了一下我可以在orderby查询中添加到foreach var节点,但我不认为这会起作用,无论如何我能做到吗?

3 个答案:

答案 0 :(得分:0)

为了根据日期和时间对某些东西进行排序,你需要将它转换为for-each循环中的日期和时间,你只需循环遍历从xml文档中获取的纯文本,它不会被订购,因为它是文本但是你可以用变量Studentid, FirstName LastName" TimeAdded TimeAdded创建一个学生类循环文档再次将每个信息写入对象学生将每个对象添加到列表中按照你想要的方式对列表进行排序然后我认为它应该显示为你想。

答案 1 :(得分:0)

您可以按如下方式使用Linq to XML

var temp = from feed in xDoc.Descendants("Students")
orderby Convert.ToDateTime(feed.Element("CreatDate").Value) descending
select new Student
{
    ID = Convert.ToInt32(feed.Element("ID").Value),
    //rest of the properties
};

答案 2 :(得分:0)

XDocument xDoc = XDocument.Load(uriGroups); 
var sortedXdoc = xDoc.Descendants("Student")
               .OrderByDescending(x => Convert.ToDateTime(x.Element("TimeAdded").Value));