Если вы делаете это в памяти (после того, как результаты уже были извлечены из базы данных) и делаете это в одной строке, вы должны написать что-то вроде
int zip = Convert.ToInt32(!string.IsNullOrEmpty(p.ZipCode) ? p.ZipCode : "0");
Если вы пытаетесь преобразовать строку в целочисленный внутренний запрос в базе данных, вам может потребоваться определить пользовательскую функцию, которая преобразует преобразование в правильное приведение в базе данных. См. Этот связанный вопрос для возможной реализации .
Однако я бы рекомендовал вам , а не , чтобы преобразовать почтовый индекс в целое число. Почтовый индекс не числовое значение, несмотря на то, что он состоит из чисел (в некоторых частях света). Обращайтесь с ней как с правильной строкой, которая выглядит так, как будто вы уже делаете внутри p
(и предположительно в базе данных). То же самое относится и к номерам телефонов, номерам SSN, номерам счетов и т. Д.