如何更新X ++地图

问题描述 投票:0回答:1

我想在地图中更改键的值。我该怎么做?可能吗?

我发现只有方法插入(_key,_value),但我不想创建带有值的新键,而是更改现有键的值。

dictionary axapta x++
1个回答
4
投票

如何编辑密钥

只需删除旧密钥,然后使用新密钥重新插入。

map = new Map(Types::String,Types::Real)
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
map.remove("b");     // remove key
map.insert("y", 2);  // reinsert new key with value

如何编辑值

只需使用insert重新插入该值即可。密钥不能重复,而是覆盖。

回报价值 输入:boolean 如果密钥在地图中尚未存在且已插入,则为true;否则为false。否则,错误。 备注 如果密钥已存在于地图中,则更新该值。

例如,手动对项目组的行数量分组:

Map map = new Map(Types::String,Types::Real);
SalesLine sl;
while select sl where sl.SalesId == "123"
{
    map.insert(sl.ItemGroup, sl.LineAmount + (map.exists(sl.ItemGroup) ? map.lookup(sl.ItemGroup) : 0);
}

等同于但性能方面不如:

select sum(LineAmount) sl group ItemGroup where sl.SalesId == "123";
© www.soinside.com 2019 - 2024. All rights reserved.