我想在我的数据采集应用程序中使用嵌套列表来动态存储我传入的 16 位数据。我创建了一个 UInt16 的列表,并将它添加了三次(NUMCHANNEL=3)到一个 List 类型的列表中。现在我希望我可以按照下面代码所示的方式添加一个 Uint16 条目:
public List<UInt16> TBATT16 = new List<UInt16>();
public List<List<UInt16>> LBATT16 = new List<List<UInt16>>();
for (int i = 0; i < NUMCHANNEL; ++i)
{
LBATT16.Add(TBATT16);
}
LBATT16[0].Add((ushort)(0x1155));
它确实会添加一个条目,但不仅会添加到 LBATT16[0],还会添加到所有 LBATT16 列表。我在这里做错了什么?
最佳答案
您需要将列表创建移动到循环内:
public List<List<UInt16>> LBATT16 = new List<List<UInt16>>();
for (int i = 0; i < NUMCHANNEL; ++i)
{
//Make a unique list for each element
public List<UInt16> TBATT16 = new List<UInt16>();
LBATT16.Add(TBATT16);
}
LBATT16[0].Add((ushort)(0x1155));
关于C# 嵌套列表条目问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8057614/