我正在尝试创建一个方法,该方法采用 DataTable 或 DataRowCollection 并将其转换为泛型类型的数组。像这样的东西:
public static T[] ConvertToArray<T>(DataTable dataTable)
{
List<T> result = new List<T>();
foreach (DataRow dataRow in dataTable.Rows)
result.Add((T)dataRow);
return result.ToArray();
}
问题是这条线
result.Add((T)dataRow);
这给出了无法将 System.Data.DataRow 转换为 T。
如果我在不使用泛型类型的情况下做同样的事情,并确保对象的类具有定义的自定义转换运算符,则代码可以正常工作。
所以现在的问题是,我如何使用泛型?