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

如何在C#动态列表中添加属性,实现按名称而非索引访问?

给动态列表对象添加name属性,实现按名称访问

嘿,我懂你想要的效果了!你有个只带amount属性的动态列表,想给列表里第1个和第2个元素(也就是索引[0]和[1])加上name属性,这样之后不用记索引,直接通过名称就能访问对应的对象,对吧?

我给你两种常用的解决方案,根据你的场景选就行:

方案一:直接给目标对象添加name属性

如果你的列表已经存在,直接通过索引定位对象,然后给它们添加name属性就好,非常直接:

// 假设这是你当前的动态列表
const dynamicList = [
  { amount: 150 },
  { amount: 250 },
  { amount: 350 }
];

// 给索引0和1的对象添加name属性
dynamicList[0].name = "PrimaryItem";
dynamicList[1].name = "SecondaryItem";

之后你就可以通过name来查找对应的对象了,比如:

// 通过name找到目标对象并访问amount
const primaryItem = dynamicList.find(item => item.name === "PrimaryItem");
console.log(primaryItem.amount); // 输出150

方案二:转成键值对映射(更便捷的访问方式)

如果你希望之后的访问更直观,不用每次都调用find,可以把这两个对象转成一个以name为键的映射对象:

// 基于原列表创建映射
const itemMap = {
  PrimaryItem: dynamicList[0],
  SecondaryItem: dynamicList[1]
};

// 直接通过名称访问,一步到位
console.log(itemMap.PrimaryItem.amount); // 输出150
console.log(itemMap.SecondaryItem.amount); // 输出250

注意事项

如果你的列表是从接口或其他动态来源获取的,记得先判断列表长度,避免索引越界:

// 假设从接口获取动态列表
fetch('/your-data-source')
  .then(response => response.json())
  .then(list => {
    // 确保列表至少有2个元素再添加属性
    if (list.length >= 2) {
      list[0].name = "PrimaryItem";
      list[1].name = "SecondaryItem";
    }
    // 后续操作...
  });

内容的提问来源于stack exchange,提问作者Jael Saavedra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:19:16