2011-08-13 8 views
0

私は電話番号を数字列としてデータベースに保存しています。たとえば、4081234567です。私は、この電話番号の文字列を米国の電話フォーマットXXX-XXX-XXXXでフォーマットしようとしています。これは私が持っているもので、うまくいきません。linqを使用した電話番号の書式

ThePhone = "4081234567"; 
char[] ThePhoneString = ThePhone.ToArray(); 
var ThePhoneFormat = ThePhoneString.Take(3).ToList().ToString() + "-" +ThePhoneString.Skip(3).Take(3).ToString + "-" + ThePhoneString.Skip(6).Take(4).ToString(); 

もっと良い方法があります。何を指示してるんですか?

おかげで..

答えて

4

頼まれました。この種の操作は、LINQが使用されるものではありません。

代わりに正規表現などを使用してください。

var phoneNumber = "4081234567"; 
var phoneFormat = Regex.Replace(phoneNumber, @"(\d{3})(\d{3})(\d{4})", "$1-$2-$3"); 
0
String.Format("{0:(###) ###-#### x ###}", double.Parse("1234567890123")) 

この質問はまた、あなたがこのためにLINQを必要としないここ Fastest way to format a phone number in C#?

+0

先頭の0が解析対象に含まれないため、このメソッドは機能しません。 – frenchie

+0

また、OPの電話番号では動作しません! –