2014-10-02 3 views
0

Я пишу в C#Сортировка ListBox с несколькими полями по дате

У меня есть два списка.

Список Box 1 заполняется, и у меня нет проблем с этим.

У меня тогда есть цикл foreach, который проходит через каждый элемент в окне списка 1 и заполняет окно списка 2 на основе запроса linq.

    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 
+0

Вы можете хранить даты в отсортированном словаре затем извлечь значение, сохраненное с помощью KeyValuePair и добавить их в окно списка – deathismyfriend

ответ

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); 
} 
+0

System.Windows.Forms.ListBox.ObjectCollection не содержит определения для select - это ошибка. – Zingo

+0

Добавить: using System.Linq –

+0

У меня уже была эта ссылка там – Zingo

Смежные вопросы