в коде C #
Если вы хотите сделать это в C #, используйте LINQ, чтобы сделать заказ за вас. Я разместил полный образец на PasteBin . Это позволит вам:
- избегайте дублирования данных в вашей базе данных
- используйте индексы БД, как обычно, независимо от того, какая СУБД
- вставляет шумовые слова в файл конфигурации, тем самым сокращая время простоя / перестроение / повторное развертывание при изменении списка
- гарантирует, что решение будет более читабельным в коде вашего клиента
DropDownList1.DataSource = myBooks.OrderBy(n => ReplaceNoise(n.Title))
public string ReplaceNoise(string input)
{
string[] noise = new string[] { "the", "an", "a" };
//surely this could be LINQ'd
foreach (string n in noise)
{
if (input.ToLower().StartsWith(n))
{
return input.Substring(n.Length).Trim();
}
}
return input;
}
в вашем выражении SQLite
Как насчет простой замены слов с шумом пробелами в порядке? Это ужасный первый шаг, но мы настоятельно рекомендуем создать новый столбец для хранения этого значения в целях сортировки.
ORDER BY REPLACE(REPLACE([title],'the',''), 'a', '')
По общему признанию, это становится уродливым, когда вы в конечном итоге с этим:
REPLACE(REPLACE(REPLACE(REPLACE([title],'The ',''),'a',''),'of',''),'by','')