В моей базе данных есть таблица контактов с номерами телефонов, которые не соответствуют ни одному конкретному формату. Например, они могут быть в формате +1 (800) 111-2222
или просто 8001112222
.
Мне нужно взять номер телефона (например, из регистрационной формы) и выполнить поиск в таблице контактов, чтобы узнать, существует ли этот номер телефона уже. Конечно, номер телефона для ввода также может быть в любом формате, со специальными символами или без них. Поэтому мне нужно убрать все нечисловые символы как из табличного значения, так и из входного значения, чтобы я мог сделать сравнение. Как мне это сделать?
Я ищу что-то вроде этого:
string inputPhoneNumber = "+1 (800) 111-2222";
MyContact existing = context.MyContacts
.Where(u => stripChars(u.Phone) == stripChars(inputPhoneNumber))
.FirstOrDefault();
Где stripChars()
- это просто имя метода, которое я придумал, которое удаляет все нечисловые символы из данной строки.
Обновление : мой метод stripChars()
реализован следующим образом:
public static string StripNonNumerical(string input)
{
Regex numbers = new Regex(@"[^\d]");
return numbers.Replace(input, "");
}
Можно ли использовать этот пользовательский метод внутри лямбда-выражения?