【发布时间】:2013-08-13 00:31:08
【问题描述】:
在过去的几天里,我一直在尝试找到一种方法来迭代 List<dynamic>,但没有取得多大成功。
这就是我正在做的:
while (dr.Read())
{
dynamic e = new ExpandoObject();
var d = e as IDictionary<string, object>;
for (var i = 0; i < dr.FieldCount; i++)
d.Add(dr.GetName(i), DBNull.Value.Equals(dr[i]) ? null : dr[i]);
result.Add(e);
}
上面的代码是一个返回 IEnumerable<dynamic> 的方法,然后在我的控制器中我正在获取数据:
dynamic irionErrorsExport = oracleDbManager.GetStrCtrlNDGWithErrors(tableName, queryParamsList, periodo, "", "", "");
现在我被困住了,因为我需要迭代 irionErrorsExport 并创建一个“具体”对象以与 EPPlus 一起使用。
谁能告诉我这是否可能并举一个简单的例子?
【问题讨论】:
-
GetStrCtrlDGWithErrors()是您的方法包含第一个 sn-p 代码吗? -
向我们展示
GetStrCtrlDGWithErrors方法签名 -
请注意,您可以这样做:
IDictionary<string, object> e = new ExpandoObject(),将d.*更改为e.*,然后更改result.Add(e),无需中间转换。