2012-10-01 23 views
5

<Id, String> öğelerini saklayan bir eşlem var; burada Kimlik bir kişi kimliğidir ve Dize oluşturulan bir e-posta iletisidir.Anahtarın yanı sıra anahtar için bir anahtardaki değeri nasıl alabilirim?

Harita üzerinde başarılı bir şekilde döngü yaptım ve harita boyunca yinelediğim değerleri (Dize bölümü) çekebildim.

Yapmak istediğim, değeri yakaladığımda da anahtarı ele geçirmektir. Bu, çoğu dilde yapmak çok basit, ama apekste nasıl yapılacağını öğrenemiyorum.

Bu şu anda ne var:

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

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

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

} 

Şimdiden teşekkürler: Ben istiyorum ne

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

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

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

} 

böyle bir şey! Değerler yerine anahtarları üzerinde

cevap

11

Bıkmadan:

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

Bu kadar basit ... (biraz daha ayrıntılı) bunu başarmak için başka bir yolu. Bunu denemeyi düşünmediğime inanamıyorum. Çok teşekkürler! – VictorKilo

0

o yok çünkü bulamıyorum. Apex, anahtarlar veya değerler üzerinde yinelemeye izin verir, ancak ilişkilendirmeler (anahtar, değer) değil.

Ne olursa olsun için
+1

Anahtarlar arasında geçiş yapabilirsiniz, ancak sonra bu değerleri kullanarak değeri yakalayabilirsiniz. Adam'ın cevabı bunu mükemmel gösteriyor. '(Anahtar, değer)' üzerinde yineleyemediğim kadar doğrusınız, ama yine de Adam'ın yöntemiyle aynı etkiyi elde etmek mümkün. – VictorKilo

0

, burada

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

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