Чтобы сделать это без LINQ на .Net2.0:
List objListOrder = GetOrderList();
objListOrder.Sort(
delegate(Order p1, Order p2)
{
return p1.OrderDate.CompareTo(p2.OrderDate);
}
);
Если вы находитесь на .Net3.0, то ответ [LQH] LukeH - это то, что вы после .
Чтобы сортировать по нескольким свойствам, вы все равно можете сделать это в пределах делегата. Например:
orderList.Sort(
delegate(Order p1, Order p2)
{
int compareDate = p1.Date.CompareTo(p2.Date);
if (compareDate == 0)
{
return p2.OrderID.CompareTo(p1.OrderID);
}
return compareDate;
}
);
Это даст вам восходящие даты с нисходящим порядком.
Тем не менее, я бы не рекомендовал прикреплять делегатов, поскольку это будет означать много мест без повторного использования кода. Вы должны реализовать IComparer
и просто передать это до вашего метода Sort
. См. здесь .
public class MyOrderingClass : IComparer
{
public int Compare(Order x, Order y)
{
int compareDate = x.Date.CompareTo(y.Date);
if (compareDate == 0)
{
return x.OrderID.CompareTo(y.OrderID);
}
return compareDate;
}
}
И затем, чтобы использовать этот класс IComparer, просто создайте его и передайте его вашему методу Сортировка:
IComparer comparer = new MyOrderingClass();
orderList.Sort(comparer);
Из javadocs вы должны быть в состоянии прочитать это из методов getNumIdle () и getNumActive () , если вы можете получить экземпляр BasicDataSource.
Чтобы получить экземпляр BasicDataSource, вы можете использовать JMX и получить доступ к открытым компонентам. Например, вы можете использовать Java Visual VM , которая поставляется вместе с JDK с версии 6, обновление 7. Конечно, вы должны установить плагин MBeans .