6

我有一个地图对象,它存储<Id, String>Id 是联系人 ID 的位置,而字符串是生成的电子邮件消息。

我已经成功地遍历了地图,并且能够在我遍历地图时提取值(字符串部分)。

我想做的也是在抢值的时候抢到key。这在大多数语言中都很简单,但我似乎无法在 apex 中找到如何做到这一点。

这就是我现在所拥有的:

Map<Id,String> mailContainer = new Map<Id,String>{};

for(String message : mailContainer.values())
{

    // This will return my message as desired
    System.debug(message);

}

我想要的是这样的:

for(String key=>message : mailContainer.values())
{

    // This will return the contact Id
    System.debug(key);

    // This will return the message
    System.debug(message);

}

提前致谢!

4

3 回答 3

13

迭代键而不是值:

for (Id id : mailContainer.keySet())
{
    System.debug(id);
    System.debug(mailContainer.get(id));
}
于 2012-10-01T23:13:48.887 回答
0

你找不到它,因为它不存在。Apex 允许对键或值进行迭代,但不允许对关联(键、值)进行迭代。

于 2012-10-02T01:12:07.597 回答
0

对于它的价值,这是完成它的另一种方法(稍微冗长)......

    Map<id, string> myMap = Map<id, string> ();

    set<id> keys = myMap.keySet();
    for (id k:keys) {
        system.debug(k +' : '+ myMap.get(k));
    }
于 2015-02-11T06:31:42.523 回答