SQLite и Int64 в Int32 приводятся в C # - PullRequest
2 голосов
/ 30 октября 2010

Спокойной ночи,

У меня есть запрос SQLite, который я выполняю в C # с помощью команды ExecuteScalar().Результатом является переменная типа Object, которая фактически является значением типа Int64.Поскольку мне нужно привести его к Int32, я сначала попытался использовать Convert.ToInt32, а теперь я использую (Int32)(Int64)Object, хотя я получаю одинаковую производительность с обоими.Вопрос заключается в том, что для такого типа приведения требуется, по-видимому, дополнительные 6 мс, а рассматриваемый метод - это критический код, который должен выполняться как можно быстрее ... Есть ли способ выполнить это приведение быстрее, используя, например,, битовые операторы или какой-то другой метод?

На всякий случай, если это невозможно, я действительно не понимаю, почему результатом запроса является Int64 ... есть ли способ заставить его бытьInt32?

Большое спасибо.

1 Ответ

1 голос
/ 30 октября 2010

Вы можете использовать средство чтения данных вместо скалярного выполнения и вызова статической функции getint32.Не уверен, что это будет быстрее.

В качестве альтернативы, вы можете привести свой результат в запросе sql, прежде чем он будет возвращен.Опять же, это может фактически снизить общую производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...