List 将动态元素添加到我的列表时出现问题<;T>;

List 将动态元素添加到我的列表时出现问题<;T>;,list,dynamic,List,Dynamic,我已经创建了一个列表。我有一个函数,可以根据数据库返回的查询自动填充列表。当我将一个元素添加到此列表时,值​​所有元素的属性都是相同的。但是,名为“Data”的动态对象是很好的 public static List<T> GetAnyData<T>(this TMyDb DbObject, T AObject, string SqlText) { List<T> result = new List<T>();

我已经创建了一个列表。我有一个函数,可以根据数据库返回的查询自动填充列表。当我将一个元素添加到此列表时,值​​所有元素的属性都是相同的。但是,名为“Data”的动态对象是很好的

public static List<T> GetAnyData<T>(this TMyDb DbObject, T AObject, string SqlText)
    {
        List<T> result = new List<T>();

        if (!DbObject.Connected)
            DbObject.ConnectDb();

        if (DbObject.Connected)
        {
            try
            {
                DbObject.command.CommandType = System.Data.CommandType.Text;
                DbObject.command.CommandText = SqlText;
                DbObject.reader = DbObject.command.ExecuteReader();
                if (DbObject.reader.HasRows)
                {
                    DataTable Dt = new DataTable();
                    Dt.Load(DbObject.reader);
                    //result = new List<T>(Dt.Rows.Count);

                    for (int k = 0; k < Dt.Rows.Count; k++)
                    {
                        T data = default(T);
                        for (int i = 0; i < Dt.Columns.Count; i++)
                        {
                            data = AObject;
                            try
                            {                                    
                                object objVal = Dt.Rows[k][Dt.Columns[i].ColumnName];
                                if (DBNull.Value.Equals(objVal) != null)
                                {                                       
                                    data.GetType().GetProperty(Dt.Columns[i].ColumnName).SetValue(data, Dt.Rows[k][Dt.Columns[i].ColumnName]);                                        
                                }

                            }
                            catch (Exception ex)
                            {
                                Log.WriteLog(LogLevel.Error, ex.Message, "DbHelper.GetMiaDataSingleRow. Column Name:" + Dt.Columns[i].ColumnName, "", "");
                            }
                        }                            
                        result.Add(data);
                    }

                    Dt.Dispose();

                }
            }
            catch (Exception ex)
            {
                Log.WriteLog(LogLevel.Error, ex.Message, "DbHelper.GetMiaDataSingleRow", "", "");
            }
        }

        return result;
    }
公共静态列表GetAnyData(此TMyDb DbObject、T aoobject、字符串SqlText)
{
列表结果=新列表();
如果(!DbObject.Connected)
DbObject.ConnectDb();
if(DbObject.Connected)
{
尝试
{
DbObject.command.CommandType=System.Data.CommandType.Text;
DbObject.command.CommandText=SqlText;
DbObject.reader=DbObject.command.ExecuteReader();
if(DbObject.reader.HasRows)
{
DataTable Dt=新的DataTable();
Dt.Load(DbObject.reader);
//结果=新列表(Dt.Rows.Count);
对于(int k=0;k
此操作的结果是​​添加到列表中的所有元素的