Vb.net 在linq查询中将字符串格式化为phone

Vb.net 在linq查询中将字符串格式化为phone,vb.net,linq,string-formatting,Vb.net,Linq,String Formatting,为什么这行不通呢?我正在尝试将手机格式化为标准格式 Dim Patient = From line In System.IO.File.ReadAllLines("K:\PAT02.txt") Select New With { _ Key .PatientID = line.substring(0,7).trim, _ .FirstName = line.substring(7,11).trim, _ .MiddleName = line.substring(18,1).trim, _ .La

为什么这行不通呢?我正在尝试将手机格式化为标准格式

Dim Patient = From line In System.IO.File.ReadAllLines("K:\PAT02.txt")
Select New With { _
Key .PatientID = line.substring(0,7).trim, _
.FirstName = line.substring(7,11).trim, _
.MiddleName = line.substring(18,1).trim, _
.LastName = line.substring(19,15).trim, _
.Home = (String.Format("{0:(###)###-####}", line.substring(112,10).trim)), _        
} 

New With
块的末尾有一个额外的逗号,删除它,代码将编译

关于您的电话号码问题,您正在使用号码格式,因此必须将号码传递给
字符串。Format
方法:

.Home = String.Format("{0:(###)###-####}", CLng(line.substring(112,10).trim))

有什么问题吗?错误消息?例外?可能重复:这里的标题提到了Linq,但实际上Linq根本没有涉及到提到的问题,这不起作用,该表达式实际上是该行的精简版本。Home=(String.Format({0:(########-######),line.substring(112,10.trim)))主要返回line.substring的内容(112,10).trim)我刚刚编写了一个单独的函数,它似乎已经完成了工作