我一直在编写一个将IEnumerable转换为数据表的通用方法:
public static DataTable DataCast (Type t) {
DataTable dt = new DataTable();
dynamic Data = DataBase.GetTable(t); // this is Linq to SQL DataContext.GetTable();
var Fields = t.GetFields();
foreach (var i in Data) {
dt.Rows.Add();
for (int y = 0; y < Fields.Length; y++) {
String F = Fields[y].Name.Split('.').Last();
// Stuck at this part dt.Columns.Add(i.F);
}
}
return dt;
}
我想知道是否有任何方法可以根据i
的值获取F
的字段。
答案 0 :(得分:1)
改为使用FieldInfo.GetValue(instance)
方法:
for (int y = 0; y < Fields.Length; y++) {
dt.Columns.Add(Fields[y].GetValue(i));
}