У меня есть объект IQueryable<...>
, который является запросом LINQ-to-SQL, который я пытаюсь заказать по имени в алфавитном порядке, но с цифрами после букв (az, 0-9 вместо 0-9, az). Например, список:Пользовательский заказ строковых значений в запросе LINQ-to-SQL
1st Street
Zeta
2nd Street
Alpha
Должны быть заказаны как:
Alpha
Zeta
1st Street
2nd Street
В настоящее время у меня есть следующий код:
IQueryable<...> holdings = ...;
/* ... */
return holdings.OrderBy(q => q.Name);
Но это упорядочивает элементы следующим образом:
1st Street
2nd Street
Alpha
Zeta
Любые мысли s о том, как заказать этот IQueryable
желаемым образом?
Предоставьте свой собственный «IComparer» и используйте [эту перегрузку «OrderBy'] (https://msdn.microsoft.com/en-us/library/vstudio/bb549422 (v = vs.100) .aspx) – ryanyuyu
Кроме того, это сравнение чувствительно к регистру? Или он обрабатывает только английские буквы или цифры? – ryanyuyu
@ryanyuyu Он использует 'Queryable.OrderBy' не' Enumerable.OrderBy', так что это не вариант. – Servy