pos*_*tos 4 c# generics object typeconverter
我有以下最终代码:
SqlDataReader dataReader;
dataReader = cmd.ExecuteReader();
// var list = new List<string[]>();
List<T[]> list = new List<T[]>();
while (dataReader.Read())
{
// var row = new string[dataReader.FieldCount];
//object[] row new object;
T[] bass;
object[] row = new object[dataReader.FieldCount];
dataReader.GetValues(row);
bass = (T[]) Convert.ChangeType(row,typeof(T[]));
list.Add(bass);
}
Run Code Online (Sandbox Code Playgroud)
我一直试图以不同的方式将对象数组转换为T泛型类型数组,但我没有做到.对于早期的代码,我得到一个运行时错误:对象必须实现IConvertible.我在定义类时为泛型类型设置了约束:
class Cclass<T>: Iinterface<T> where T:IConvertible
{
//body
}
Run Code Online (Sandbox Code Playgroud)
我愿意接受其他可以实现我向通用数组转换的目标的建议.谢谢!
你可以使用Linq:
bass = row
.Select(x => (T)Convert.ChangeType(x, typeof(T)))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |