You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于列表长度在C#动态对象中添加对应数量属性

动态为ExpandoObject添加属性的正确实现

你当前的代码存在问题:直接使用obj.temp赋值时,只会创建一个名为temp的固定属性,而非以员工的FirstName值作为属性名。要实现动态按列表元素创建独立字段,需借助ExpandoObject实现的IDictionary<string, object>接口来操作,具体代码如下:

dynamic dynamicObj = new ExpandoObject();
var dict = (IDictionary<string, object>)dynamicObj;

foreach (Employee emp in EMPLIST)
{
    // 以员工FirstName作为属性名,存储对应的Employee实例
    dict[emp.FirstName] = emp;
}

核心说明

  • ExpandoObject本身实现了IDictionary<string, object>接口,转换后可通过键值对形式动态添加属性
  • 遍历列表时,直接将emp.FirstName作为键、员工实例作为值存入字典,最终dynamicObj会生成以每个员工姓名命名的独立属性
  • 后续可直接通过dynamicObj.员工姓名的方式访问对应员工实例

内容的提问来源于stack exchange,提问作者Tripurari Kumar Jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:57:09