2011-05-18 163 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) ; 
} 

乾杯!

相關問題