在C#6.0中使用插值字符串显示电话号码

Sam*_*Sam 3 c# c#-6.0

我想使用C#6.0插值字符串方法来格式化电话号码.从数据库中,我得到一个7位数的电话号码 - 没有特殊字符.

如何使用插值字符串生成xxx-xxxx格式?

Jef*_*ado 5

只需使用自定义数字格式000-0000.

var phoneNumber = 5551234;
var formatted = $"{phoneNumber:000-0000}" // "555-1234"
Run Code Online (Sandbox Code Playgroud)

通过可选扩展,您可以这样做:

var phoneNumber = 5551234;
int? extension = 9876;
var formatted = $"{phoneNumber:000-0000}" // "555-1234"
if (extension != null)
    formatted = $"{formatted} Ext. {extension}"; // "555-1234 Ext. 9876"

// or alternatively
var formatted = $"{phoneNumber:000-0000}{(extension != null ? $" Ext. {extension}" : "")}";
Run Code Online (Sandbox Code Playgroud)

不幸的是,在单个表达式中包含字符串的可选部分并不是很容易,但它是可行的.我不建议尽量把它塞进去.我会为您的"可读"定义选择更具可读性的方法.