如何获取关键字以及apex for循环中的值?

时间:2012-10-01 21:43:44

标签: for-loop key salesforce apex-code

我有一个地图对象,存储<Id, String>,其中Id是联系人ID,字符串是生成的电子邮件。

我已成功循环浏览地图,并且能够在迭代地图时拉出值(字符串部分)。

当我抓住价值时,我希望能够抓住钥匙。这在大多数语言中都很简单,但我似乎无法在顶点找到它。

这就是我现在所拥有的:

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);

}

提前致谢!

3 个答案:

答案 0 :(得分:12)

迭代键而不是值:

for (Id id : mailContainer.keySet())
{
    System.debug(id);
    System.debug(mailContainer.get(id));
}

答案 1 :(得分:0)

您找不到它,因为它不存在。 Apex允许迭代键或值,但不能迭代关联(键,值)。

答案 2 :(得分:0)

对于它的价值,这是实现它的另一种方式(稍微冗长一点)......

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

    set<id> keys = myMap.keySet();
    for (id k:keys) {
        system.debug(k +' : '+ myMap.get(k));
    }