【发布时间】:2014-05-13 19:17:06
【问题描述】:
我在运行时创建一个动态列表,执行后我需要将该列表分配给我的类属性
List<tblchargemaster> charge = new List<tblchargemaster>();
charge = (List<tblchargemaster>) ObjDB.SelectQuery("tblchargemaster");
tblchargemaster 是类类型,SelectQuery 函数返回 List<dynamic>。如何将此动态列表转换为具有我的类类型的列表?
public List<dynamic> SelectQuert(string TableName)
{
Conn.Open();
DataTable dt = new DataTable("map");
string Query = "Select * from " + TableName;
MySqlDataAdapter dr = new MySqlDataAdapter(Query, Conn);
dr.Fill(dt);
List<dynamic> dynamicDt = dt.ToDynamic();
Conn.Close();
return dynamicDt;
}
而泛型类是
public static class DataTableExtensions
{
public static List<dynamic> ToDynamic(this DataTable dt)
{
var dynamicDt = new List<dynamic>();
foreach (DataRow row in dt.Rows)
{
dynamic dyn = new ExpandoObject();
foreach (DataColumn column in dt.Columns)
{
var dic = (IDictionary<string, object>)dyn;
dic[column.ColumnName] = row[column];
dynamicDt.Add(dyn);
}
}
return dynamicDt;
}
}
【问题讨论】:
-
正如我在回答的讨论中提到的,这归结为如何将动态转换为
tblchargemaster。一旦您可以对一个对象执行此操作,您也可以对多个对象执行此操作。 -
我更新了我的问题朋友请帮助我。 . .
-
我发布了一个指向 Stackoverflow 问答的链接,可以回答您的问题。你读了吗?
-
是的,但这就是js序列化对我的帮助