Удалить пробелы в строке перед сравнением - PullRequest
2 голосов
/ 13 мая 2011

Я хочу получать контакты на основе номера телефона, но в Ms Dynamics номера телефонов хранятся во всех видах форматов, таких как 123 45 678, 12 34 56 78, 0112345678, 01 12345678 и так далее.

Так что мне нужно удалить пробелы в них, прежде чем я сделаю сравнение, я попытался использовать метод Replace для строки, но это дало мне ошибку Illegal method во время выполнения.

Действительно ли мне нужно извлечь все контакты и сделать еще один цикл для сравнения, или есть ли способ "очистить" строку в запросе?

string phone = "12345678";
var contacts = from c in orgContext.CreateQuery<Contact>()
    join a in orgContext.CreateQuery<Account>() on c.AccountId.Id equals a.AccountId
    where (c.Telephone1.Replace(" ", "").Contains(phone) || c.MobilePhone.Replace(" ","").Contains(phone))
   select new DynamicContact
   {
     ContactId = c.ContactId,
     FirstName = c.FirstName,
     LastName = c.LastName,
     ....and more...    
   };

Edit:

Это сообщение об исключении:

Неверное условие "где". Член сущности вызывает недопустимое свойство или метод.

Ответы [ 4 ]

7 голосов
/ 13 мая 2011

Использование:

phone = phone.Replace(" ", ""); // Replaces whitespace with empty string

Это почти то же самое, что вы делаете в выражении linq.

0 голосов
/ 13 мая 2011

Замените ваш .Contains на .Equals. Я не уверен, что ваш провайдер поддерживает String.Contains, но это может привести к вашей ошибке. Несмотря на то, что нет смысла классифицировать «0123 1234» как совпадение с «231».

0 голосов
/ 13 мая 2011

Не знаю, является ли String.Replace более или менее эффективным, но

new System.String(oldString.Where(x => !Char.IsWhiteSpace(x))); 

удалит все пробельные символы.

0 голосов
/ 13 мая 2011
String.Join("", yourString.Split(" "))

Это разделит все пробелы в любом месте строки и объединит полученный массив без пробелов. Я считаю, что это то, что вы ищете.

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