我正在使用 TextReader 读取制表符分隔文件的每一行。对于它读取的每一行,我在选项卡上拆分并填充一个字符串数组。然后我可以访问字符串数组中的特定位置来获取值。
这适用于以下字符串:userWorkload.SSN = arrColumns[0];
但是,当我尝试将其中一列转换为 int 时,在运行时收到一条错误消息: userWorkload.contactHours = Convert.ToInt32(arrColumns[9]);
这是我的代码:
List<UserWorkload> userWorkloads = new List<UserWorkload>();
TextReader tr = File.OpenText("fall11-tab.txt");
string strLine = string.Empty;
string[] arrColumns = null;
while ((strLine = tr.ReadLine()) != null)
{
UserWorkload userWorkload = new UserWorkload();
arrColumns = strLine.Split('\t');
userWorkload.SSN = arrColumns[0];
userWorkload.contactHours = Convert.ToInt32(arrColumns[9]);
userWorkloads.Add(userWorkload);
}
UserWorkload 类只包含简单的getter / setter:
class UserWorkload
{
public string SSN { get; set; }
public int contactHours { get; set; }
}
这是我的错误:
未处理的异常:System.FormatException:输入字符串的格式不正确。
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
在 System.Convert.ToInt32(String value)
在 Snyder5Creator C:\Users\baxter.NET\Documents\Visual Studio 2010\Projects\User5Creator\User5Creator\InputFileReader.cs
中的 .InputFileReader.buildRowList():C:\ 中 Snyder5Creator.Program.Main(String[] args) 的第 31 行用户\baxter.NET\Documents\Visual Studio 2010\Projects\User5Creator\Snyder5Creator\Program.cs:第 24 行
第 31 行是:userWorkload.contactHours = Convert.ToInt32(arrColumns[9]);
对此的任何帮助将不胜感激。