我正在解析一个 CSV 文件并将数据放在一个结构中。我正在使用TextFieldParser
from this question,它的工作原理就像一个魅力,只是它返回一个String[]
. 目前我有一个丑陋的过程:
String[] row = parser.ReadFields();
DispatchCall call = new DispatchCall();
if (!int.TryParse(row[0], out call.AccountID)) {
Console.WriteLine("Invalid Row: " + parser.LineNumber);
continue;
}
call.WorkOrder = row[1];
call.Description = row[2];
call.Date = row[3];
call.RequestedDate = row[4];
call.EstStartDate = row[5];
call.CustomerID = row[6];
call.CustomerName = row[7];
call.Caller = row[8];
call.EquipmentID = row[9];
call.Item = row[10];
call.TerritoryDesc = row[11];
call.Technician = row[12];
call.BillCode = row[13];
call.CallType = row[14];
call.Priority = row[15];
call.Status = row[16];
call.Comment = row[17];
call.Street = row[18];
call.City = row[19];
call.State = row[20];
call.Zip = row[21];
call.EquipRemarks = row[22];
call.Contact = row[23];
call.ContactPhone = row[24];
call.Lat = row[25];
call.Lon = row[26];
call.FlagColor = row[27];
call.TextColor = row[28];
call.MarkerName = row[29];
该结构由所有这些字段组成,String
除了 AccountID 是 s 之外int
。它们不是强类型的,这让我很恼火,但现在让我们看一下。鉴于parser.ReadFields()
返回 a是否有更有效的方法来用数组中的值String[]
填充结构(可能转换一些值,例如row[0]
需要成为 a )?int
**编辑:**我忘记提到的一个限制可能会影响什么样的解决方案将起作用,这个结构是[Serializable]
并且将被发送到其他地方 Tcp。