C# 如何向同一对象添加多个字段
问题是如何向动态创建的对象动态添加属性和值 先前询问 我想动态地向对象添加多个字段,我使用 下面的代码,但每个循环都会删除上一个循环并添加 最新,但我希望对象保存所有值C# 如何向同一对象添加多个字段,c#,C#,问题是如何向动态创建的对象动态添加属性和值 先前询问 我想动态地向对象添加多个字段,我使用 下面的代码,但每个循环都会删除上一个循环并添加 最新,但我希望对象保存所有值 SqlDataReader sdr = cmd.ExecuteReader(); var columns = Enumerable.Range(0, sdr.FieldCount).Select(sdr.GetName).ToList(); if (sdr.HasRows) { allRows = new ArrayLi
SqlDataReader sdr = cmd.ExecuteReader();
var columns = Enumerable.Range(0, sdr.FieldCount).Select(sdr.GetName).ToList();
if (sdr.HasRows)
{
allRows = new ArrayList();
while (sdr.Read())
{
dynamic obj = new ExpandoObject();
foreach (string item in columns)
{
obj.item = sdr[item];
}
allRows.Add(obj);
}
}
DataTable
正好满足您的需求。不要使用原语执行此类常见任务,而是使用内置的DataAdapter
在一次函数调用中为您从数据库获取所有值。即使您正在查找命名属性成员,强类型的数据集也会为您解决此问题。尝试移动“dynamic obj=new ExpandoObject();”除此之外,问题不是找到更好的方法。你应该把它作为一个评论来发表。@nikhilvartak:如果他建议了一个更好的方法,这个方法有效,或者可能有效,并且OP发现它可以这样做,那么这确实是一个答案。