【问题标题】:add to list if record is unique如果记录是唯一的,则添加到列表中
【发布时间】:2013-09-01 11:39:43
【问题描述】:

我有一个返回Map<Id, List<Id>>的方法

方法如下:

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

我只想将联系人的唯一 DBR_c 和唯一帐户添加到 accountIds 列表中_c

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

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

下一个

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

下一个

3333,联系人是 Big Company 帐户上的 Bob Smith(添加到列表中)

下一个

3333,联系人是大公司帐户上的 Doug Smith(不要添加到列表中)

帐户的 DBR 应该是不同的。

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

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: salesforce apex-code


    【解决方案1】:

    您可以通过使用以下本地设置或使用Map &lt; Id, Set &lt; Id &gt;&gt; 作为您的 返回值。

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

    【讨论】:

      猜你喜欢
      • 2015-04-09
      • 2022-06-15
      • 1970-01-01
      • 2014-05-24
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多