TextReaderを使用して、タブ区切りファイルの各行を読み取ります。読み取った行ごとに、タブを分割して文字列配列にデータを入力します。次に、文字列配列内の特定の位置にアクセスして値を取得できます。
これは、次のような文字列に最適です。userWorkload.SSN = arrColumns [0];
ただし、実行時に列の1つを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クラスには、単純なゲッター/セッターが含まれています。
class UserWorkload
{
public string SSN { get; set; }
public int contactHours { get; set; }
}
これが私のエラーです:
未処理の例外:System.FormatException:入力文字列が正しい形式ではありませんでした。
System.Number.ParseInt32(String s、NumberStyles style、NumberFormatInfo info)
at System.Convert.ToInt32(String value) at Snyder5Creator
at System.Number.StringToNumber(String str、NumberStyles options、NumberBuffer&number、NumberFormatInfo info、Boolean parseDecimal)
at Snyder5Creator .InputFileReader.buildRowList()in C:\ Users \ baxter.NET \ Documents \ Visual Studio 2010 \ Projects \ User5Creator \ User5Creator \ InputFileReader.cs:line 31
at Snyder5Creator.Program.Main(String [] args)in C:\ Users \ baxter.NET \ Documents \ Visual Studio 2010 \ Projects \ User5Creator \ Snyder5Creator \ Program.cs:line 24
31行目は次のとおりです。userWorkload.contactHours=Convert.ToInt32(arrColumns [9]);
これに関する助けをいただければ幸いです。