由于输入是 CSV 文件,因此应事先知道数据类型。即你已经知道 ID 是一个字符串,Company 是一个字符串,Avg Salary 是一个 double,Founding date 是一个日期,等等。
您应该围绕规范进行编码,并在数据格式错误时优雅地处理用户错误。
我有一堂课可能会有所帮助:
/// <summary>
/// Translate a text value to its setting type
/// </summary>
/// <param name="type">Type to convert to</param>
/// <param name="value">string to cast</param>
/// <returns></returns>
private static object CastHelper(Type type, string value)
{
switch (type.Name)
{
case "Int32":
return Convert.ToInt32(value);
case "Byte":
return Convert.ToByte(value);
case "Boolean":
return Convert.ToBoolean(value);
case "Color":
{
try
{
string[] rgb = value.Split(',');
return Color.FromArgb(Convert.ToInt32(rgb[0]), Convert.ToInt32(rgb[1]), Convert.ToInt32(rgb[2]));
}
catch (Exception)
{
return Color.FromName(value);
}
}
case "Font":
return (new FontConverter().ConvertFromString(value));
default:
return value;
}
}