我有一個查詢從一個字段包含在這樣的領域中的用戶名和僱員號得到一個員工編號:如何檢查CSV文件的Linq查詢中是否存在字符?
名稱[僱員號碼]
例如
弗雷德·布洛斯[1234]
我的查詢工作正常的大部分時間,但偶爾的字段不包含員工數量,因此它拋出一個「索引超出範圍」異常。 (即如果字段只包含「弗雷德布羅格斯」就會失敗。)
查詢如下:
var allEmpNos = (from row in csvTable.AsEnumerable()
join d in DeltekList
on row.Field<string>("Phone number") equals d.Mobile into t
from rt in t.DefaultIfEmpty()
select new
{
name = row.Field<string>("User name"),
empNo = rt == null ? row.Field<string>("User name").Split('[')[1].Replace("]", "") : rt.EmpNo,
});
我如何處理「壞數據」在運行時?我的理想將是它拋出一個異常,告訴用戶更正CSV文件。我可以通過解析CSV兩次,第一次檢查的「[」和「]」的存在,然後再次做實際進口做到這一點,但作爲CSV是相當大的,這似乎效率不高。