You need to sign in to do that
Don't have an account?
CageMMA
How to get the next value in a LIST???
Hi all:
I have the following, where I split the text area box with names but I do not know how to get the next value in that split... for example:
TextBox Area = X,Y,Z
3 Names
I use code to Split it based on comma (',')
but in a for loop do not know how to go to the next value...
queryAttendeesLines(investor.id); List<Investor_Feedback__c> sarq = new List<Investor_Feedback__c>( [Select Id,S_P_Attendees__c FROM Investor_Feedback__c where id=:investor.id] ); integer gone = -1; integer i = 0; String filename; filename = sarq[0].S_P_Attendees__c; List<string> my_list = new List<String>(); for ( i=0; i< attendeeLineItems.size(); i++ ) { if(sarq[0].S_P_Attendees__c == null){ sarq[0].S_P_Attendees__c = attendeeLineItems[i].Attendee_name__c; } else { List<String> parts = filename.split(','); filename = parts[parts.size()-1]; System.debug('-parts='+ parts + '-filename=' + filename + '-attendeeLineItems=' + attendeeLineItems[i].Attendee_name__c); System.debug('z1' + parts[i]); if(filename!=attendeeLineItems[i].Attendee_name__c){ sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c = + ',' + attendeeLineItems[i].Attendee_name__c; } } }
I tried Filename = parts.get(i) <== gave me error System.ListException: List index out of bounds: 1 ???
you need to use for loop to loop thru the 'parts' List and check wether the List already contains the name or not
Samples for the else loop:
/*Method 1*/
else {
List<String> parts = filename.split(',');
Set<String> partsString = new Set<String>();
for(String str :parts){
partsString.add(str.trim());
}
if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){
sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;
}
}
/*Method 2*/
else {
Boolean flagCheck = false;
List<String> parts = filename.split(',');
for(String str :parts){
if(str.trim() == attendeeLineItems[i].Attendee_name__c){
flagCheck = true;
break;
}
}
if(flagCheck == false){
sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;
}
}
All Answers
you need to use for loop to loop thru the 'parts' List and check wether the List already contains the name or not
Samples for the else loop:
/*Method 1*/
else {
List<String> parts = filename.split(',');
Set<String> partsString = new Set<String>();
for(String str :parts){
partsString.add(str.trim());
}
if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){
sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;
}
}
/*Method 2*/
else {
Boolean flagCheck = false;
List<String> parts = filename.split(',');
for(String str :parts){
if(str.trim() == attendeeLineItems[i].Attendee_name__c){
flagCheck = true;
break;
}
}
if(flagCheck == false){
sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;
}
}
Thank you... Soooo Much
Thank you now if someone removed an Attendee name from the list how do I do the reverse to remove the name from the text area box... for example
Before:
Attendees = X,Y,Z
TextArea box was = X,Y,Z
Remove X from Attendee
Textbox should equal now Y,Z and X should be removed??
Thanks
if(filename.contains(attendeeLineItems[i].Attendee_name__c)){
filename.replace(attendeeLineItems[i].Attendee_name__c,'');
}
Thanks but if I place that in, wouldn't it repeat everything... Like what part of the code would I place that in there...
for ( i=0; i< attendeeLineItems.size(); i++ ) {if(attendeeLineItems[i].Attendee_name__c == null){if(filename.contains(attendeeLineItems[i].Attendee_name__c)){ filename.replace(attendeeLineItems[i].Attendee_name__c,'');} }else{if(sarq[0].S_P_Attendees__c == null){ sarq[0].S_P_Attendees__c = attendeeLineItems[i].Attendee_name__c; } else {List<String> parts = filename.split(','); Set<String> partsString = new Set<String>(); for(String str :parts){ partsString.add(str.trim()); } if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){ sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c; } }
}}