2011-05-18 83 views
0

我需要验证电话号码以检查它们是全1还是2还是3等。我如何有效地使用LINK来做到这一点。电话号码是一个字符串。 所以如果它的“2323456789”应该返回true,如果它的“3333333333”应该返回false。我搜索了解决方案的每个地方。检查列表中的所有数字是否重复

+1

它是'LINQ'否'LINK' – 2011-05-18 18:38:22

回答

8

像这样?

public bool Check(String number) 
{ 
    return number.Distinct().Count() > 1; 
} 
+4

你不需要'.ToCharArray()','String'类已经是'IEnumerable '。 – Guffa 2011-05-18 18:43:39

+0

非常感谢。一个真棒1班轮。 – MissTech 2011-05-18 18:56:14

+0

尽管当我通过这样的事情 - > 2142371942 Distinct.count是6.不知道它是如何演绎的,但它总是返回Distinct.Count = 1的所有0,1,2的.... 9's所以这就是我需要。 – MissTech 2011-05-18 19:07:16

2

退房这篇文章验证电话号码:

http://blog.stevenlevithan.com/archives/validate-phone-number

从文档中引用:

区号开始从2-9的数字,其次是0-8,和然后是第三位数字。 第二组三位数字(称为中心局或交换码)以2-9的数字开头,后跟任意两位数字。 最后四位数字,即站号,没有限制。

所以你可能有人可能会把222-222-2222。

+1

虽然有趣的是,该链接并没有回答这个问题。 – Gabe 2011-05-18 18:38:47

+0

我检查了一个。除特定情况下需要的所有验证外,我们有所有验证。谢谢 – MissTech 2011-05-18 19:02:37

1

Linq?只是为了检查一个字符串是否由多次重复的相同字符组成?

以下正则表达式将匹配一个由多个重复多次的相同十进制数字组成的字符串。也就是说,它将匹配“11”,“111”和“111”,但不匹配“1”。如果要匹配包含重复0次或更多次的相同十进制数字的任何字符串,请将一个或多个量词字符+替换为零个或多个量词*

private static Regex rxBogusPhoneNumber = new Regex(@"^(?<digit>\d)\k<digit>+$") ; 
public static bool isBogusPhoneNumber(string phoneNumber) 
{ 
    return rxBogusPhoneNumber.IsMatch(phoneNumber) ; 
} 

干杯!

相关问题