Как я уже упоминал в своем комментарии выше, наличие нескольких кредитных рейтингов в виде строки может вызвать проблемы с целостностью данных, вместо этого я бы переместил их в enum
, например:
public enum CreditRatings
{
AAA,
AA,
A,
BBB,
BB,
B,
CCC,
etc
}
И вместо этого вы сохраняете это в своем BreakdownItem
, вы можете сделать:
var sortedRatingBreakdown = unsortedCreditRatings.OrderBy(item => item.Rating);
Если вы должны сохранить их как string
и не можете использовать enum
, вы можете рассмотреть возможность использования Dictionary<string, int>
или чего-то подобного для хранения своего заказа, чтобы вы по крайней мере получить O (1) время поиска:
var ratingOrders = new Dictionary<string,int>
{
{ "AAA", 1 },
{ "AA", 2 },
{ "A", 3 },
etc...
};
Тогда вы можете заказать по результатам словаря:
var sortedRatingBreakdown = unsortedCreditRatings.OrderBy(item => ratingOrders[item.Name]);