なぐりがき

SalesforceからときどきIdol



Salesforce:addとaddAllの話

2日前に下書きに書いた投稿と同じタイトルになってて考えること変わらないなぁ。
という訳でタイトルの通りです。
どちらが使えるのか忘れてしまうので、備忘録。




add

https://developer.salesforce.com/docs/atlas.ja-jp.202.0.apexcode.meta/apexcode/apex_methods_system_list.htm

add(listElement)

リストの最後に要素を追加します。

例1)
Account acc = new Account(Name ='aaa');
List<Account> aList = new List<Account>();
aList.add(acc);


例2)
List<Account> aList1 = new List<Account>();
aList1 = [SELECT Id FROM Account];
List<Account> aList2 = new List<Account>();
aList2.add(aList[0]);

例1も例2でもリストに1つずつ追加します。




addAll

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_list.htm#apex_System_List_add

addAll(fromList)

指定されたリストのすべての要素を、メソッドをコールするリストに追加します。両方のリストは同じデータ型である必要があります。

例3)
List<Account> aList1 = new List<Account>();
aList1 = [SELECT Id FROM Account];
List<Account> aList2 = new List<Account>();
aList2.add(aList1);

なかなかこんな書き方はしないですけど、例えば違う条件でレコードを2つのSOQLで別リストで取得していて、表示のため同じリストに詰めたいというような時はこちら。




addは新規でレコードを1つずつ作って登録する場合なんかでよく使いますね。ループの中だとか。
addAllはあんまり馴染みがなかったです。今後は使えるぞーーーー!