Salesforce 如果记录是唯一的,则添加到列表中

Salesforce 如果记录是唯一的,则添加到列表中,salesforce,apex-code,Salesforce,Apex Code,我有一个返回Map 方法如下: private Map<Id, List<Id>> getDbrToAccountMap(Set<Id> dbrIds) { Map<Id, List<Id>> dbrAccountMap = new Map<Id, List<Id>>(); List<Id> accountIds = new List<Id>(); for(DBR_

我有一个返回
Map

方法如下:

private Map<Id, List<Id>> getDbrToAccountMap(Set<Id> dbrIds) {
    Map<Id, List<Id>> dbrAccountMap = new Map<Id, List<Id>>();
    List<Id> accountIds = new List<Id>();
    for(DBR_Group_Member__c member : [select Id, Contact__c, Contact__r.AccountId, DBR__c from DBR_Group_Member__c where DBR__c in: dbrIds]) {
        if(accountIds.isEmpty()) {
            accountIds = new List<Id>();
            dbrAccountMap.put(member.DBR__c, accountIds);
        }
        accountIds.add(member.Contact__r.AccountId);
    }
    return dbrAccountMap;
}
私有映射getDbrToAccountMap(Set dbrIds){
Map dbrAccountMap=newmap();
List accountIds=新列表();
对于(DBR_组成员成员成员成员:[选择Id、Contact_c、Contact_r.AccountId、DBR_c from DBR_组成员成员成员,其中DBR_c in:dbrIds]){
if(accountId.isEmpty()){
AccountId=新列表();
dbrAccountMap.put(member.DBR\uu\c,accountid);
}
AccountId.add(member.Contact\r.AccountId);
}
返回dbrAccountMap;
}
我只想在AccountID列表中添加唯一DBR_c和联系人的唯一帐户

例如,如果我的DBR编号为:

3333,联系人是Acme帐户上的John Smith(添加到列表中)

接下来我有

3333,联系人是Acme帐户上的Jane Smith(不要添加到列表中)

接下来我有

3333,联系人是大公司账户上的鲍勃·史密斯(添加到列表中)

接下来我有

3333,联系人是大公司账户上的道格·史密斯(不要添加到列表中)

要考虑的DBR应该是不同的

在我的方法中,我返回AccountID,但它们根据DBR不同。我必须小心,因为如果DBR编号不同,我不想删除列表中重复的accountId。这将是列表中的有效元素

任何帮助都将不胜感激


谢谢。

您可以使用如下本地集或使用
映射
作为您的 返回值

private Map < Id, List < Id >> getDbrToAccountMap(Set < Id > dbrIds) {

    Map < Id, List < Id >> dbrAccountMap = neenter code herew Map < Id, List < Id >> ();
    Set < String > alreadyExistSet = new Set < String > ();
    List < Id > accountIds = new List < Id > ();
    for (DBR_Group_Member__c member: [select Id, Contact__c, Contact__r.AccountId, DBR__c from DBR_Group_Member__c where DBR__c in : dbrIds]) {
        if (dbrAccountMap.get() == null) {
            dbrAccountMap.put(member.DBR__c, new List < Id > );
        }
        if (!alreadyExistSet.contains('' + member.DBR__c + member.Contact__r.AccountId)) {
            dbrAccountMap.get(member.DBR__c).add(member.Contact__r.AccountId);
            alreadyExistSet.add('' + member.DBR__c + member.Contact__r.AccountId);
        }
    }
    return dbrAccountMap;
}
private Map>getDbrToAccountMap(SetdbrIds){
Map>dbrAccountMap=neenter代码在这里w Map>();
SetalreadyExistSet=newset();
ListaccountIds=新列表();
对于(DBR_组成员成员成员成员:[选择Id、Contact_c、Contact_r.AccountId、DBR_c from DBR_组成员成员成员,其中DBR_c in:dbrIds]){
if(dbrAccountMap.get()==null){
dbrAccountMap.put(member.DBR_uc,新列表);
}
如果(!alreadyExistSet.contains(“”+member.DBR\uu c+member.Contact\uu r.AccountId)){
dbrAccountMap.get(member.DBR\u c).add(member.Contact\u r.AccountId);
添加(“”+member.DBR\u c+member.Contact\u r.AccountId);
}
}
返回dbrAccountMap;
}