我有一个大小不固定的列表。在每次迭代中,列表中的元素数量可能会减少,增加或保持相同但具有不同的值。
在每次迭代中,我在setter中收到如下新的列表:
public List<int> IconsColor
{
get { return iconsColorList; }
set
{
newIconsColorList = new List<int>(value);
if (newIconsColorList.Count == iconsColorList.Count && newIconsColorList.All(iconsColorList.Contains))
return;
//Else
nIconsChanged = true;
//??????????????????????????
//?????????- How do I update Old list with New values
//Something like iconsColorList = newIconsColorList;
//but above line makes the If-condition true since both the lists are same now
}
}
如何使用新值(存在于iconsColorList
中)修改上一个列表(newIconsColorList
)的元素?如果新列表中的元素数量大于旧列表中的元素数量,那么也将新元素添加到旧列表中。
答案 0 :(得分:0)
所以你想要合并两个列表(更新和添加新的):
public List<int> IconsColor
{
set
{
for (int i = 0; i < Math.Min(iconsColorList.Count, value.Count); i++)
{
if (value[i] != iconsColorList[i])
{
iconsColorList[i] = value[i];
nIconsChanged = true;
}
}
if (value.Count > iconsColorList.Count)
{
// append new items to the end of the list
iconsColorList.AddRange(value.Skip(iconsColorList.Count));
nIconsChanged = true;
}
}
}
旁注:我希望缺少吸气剂只是因为它不相关。没有吸气剂的房产不是很有用,闻起来像鱼。在这种情况下,它只是return iconsColorList;
。