-1

I have a Map<String,List> and I want to convert to Map<String,String> converting list to string.join(','). I tried this, but it only replicates one value

User u = new User(); List<User> userUpd = new List<User>(); Map<String,List<String>> usersMap = new Map<String,List<String>>(); for(String uMap : usersMap.keySet()){ u.Order__c = uMap; u.Values__c = string.join(usersMap.get(u.Order__c.trim().toLowerCase()),','); userUpd.add(u); } 

1 Answer 1

2

This is because you never create a new user in memory, so they all reference each other.

As a basic example:

User u = new User(); User u2 = u; u2.LastName = 'Fear'; System.debug(u.LastName); // Fear 

You need to create a new user for each iteration through the loop:

for(String uMap : usersMap.keySet()){ User u = new User(); u.Order__c = uMap; u.Values__c = string.join(usersMap.get(u.Order__c.trim().toLowerCase()),','); userUpd.add(u); } 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.