Вы, вероятно, хотите:
SortedList.Values.Cast<Order>().FirstOrDefault(order => order.OrderID == orderID);
Конечно, если вы говорите о SortedList<TKey, TValue>
, звонок на Cast()
не нужен.
Кстати, если вы просматриваетеValues
из SortedList
таким образом, есть большая вероятность, что вы используете неправильный выбор для ключа / используете неверную структуру данных в целом.
РЕДАКТИРОВАТЬ:
Если вы не можете использовать LINQ в проекте и не хотите поддерживать отдельные структуры данных с ключами, соответственно, датой заказа и идентификатором заказа (как предложил Бен Фойгт), я не вижу другого выбора, кроме какосуществить поиск самостоятельно:
foreach(ShopOrder order in sortedList.Values)
{
if(order.OrderID == orderID) return order;
}
return null; // or throw an exception, whichever you find appropriate.
Если вы хотите обобщить дальше, напишите свою собственную реализацию FirstOrDefault
.