按日期排序具有多个字段的Lis​​tBox

时间:2014-10-02 20:25:58

标签: c# sorting date listbox

我正在写C#

我有两个列表框。

列表框1已填充,我对此没有任何问题。

然后我有一个foreach循环遍历列表框1中的每个项目,并根据linq查询填充列表框2。

                    foreach (var item in listBox2.Items) 
                    {

                      var date =
                           (from z in task.tblContractProcessRequests
                            where z.RequestID == Int32.Parse(item.ToString()) && z.RequestTypeID == 1
                            select z).Single();

                      listBox3.Items.Add( date.RequestID + " - " + date.RequestTime);

                    }

所以现在我的列表框2看起来像这样

 12345 - 01/12/2010
 65432 - 03/12/2009
 92354 - 12/31/2013

我如何将第二个列表框托架日期降序排列为这样?

 92354 - 12/31/2013
 12345 - 01/12/2010
 65432 - 03/12/2009

1 个答案:

答案 0 :(得分:1)

首先获取一个有序的日期列表,然后填充listBox3:

var dates = listBox2.Items.Cast<object>().Select( item => 
     (from z in task.tblContractProcessRequests
      where z.RequestID == Int32.Parse(item.ToString()) && z.RequestTypeID == 1
      select z).Single() ).OrderByDescending(d => d.RequestTime);


 foreach (var date in dates) 
 {
    listBox3.Items.Add( date.RequestID + " - " + date.RequestTime);
 }