将值添加到List<;T>;相同的索引

本文关键字:gt 索引 lt 添加 List | 更新日期: 2023-09-27 18:26:41

我有一个名为MHP的类型对象集合。MHP有多个成员字段(Name、AC、Par_ID等)。我创建了一个列表;

private List<MHP> mhpList = new List<MHP>();
public List<MHP> MHPList
{ get { return mhpList; } set { mhpList = value; } }

我通过创建一个新对象:,在for循环中用值填充部分字段

mhpList.Add(new MHP
{
 MHP_Name = something,
 MHP_AC = a number
}); 

现在,我想用一个值填充剩余的字段,我通过创建一个新对象来实现这一点,但这显然将该值放置在集合的新索引中;

mhpList[0]MHP_Name="Something",MHP_AC="#",MHP_ParId=null。

mhpList[1]MHP_Name=null,MHP_AC=null,MHP_ParID='something'

我尝试创建一个新列表,并向该列表添加一个新对象,然后使用以下命令将新列表添加到mhpList:

mhpList.AddRange(newList)

以及mhp.InsertRange,但每次都会在集合中添加对象的新索引。如何将值添加到集合的SAME索引中未填充的字段?

将值添加到List<;T>;相同的索引

只需使用项目的索引:即可访问该项目

mhpList = new List<MHP>();
mhpList.Add(new MHP
{
 MHP_Name = something,
 MHP_AC = a number
});
mhpList[0].MHP_ParId= "Something";
mhpList[0].MHP_ParID = something;

更详细地说,您应该使用MHP对象的方法,而不是List的方法。列表只知道其中有一些MHP对象。列表可以做的是:

  • 将MHP添加到列表
  • 从列表中删除MHP
  • 从列表中获取MHP

如果要更改特定MHP中的字段,这与列表无关,而是与MHP对象有关。你获取对象,然后修改它。然后,如果它是一个引用对象(类),你就完成了。如果它是一个值对象(结构),则必须将其重新添加到列表中,如:

MHP obj = mhpList[0];
obj.MHP_ParID = something;
mhpList[0] = obj;