Dictionary <string, List <SaleItem>> saleItemNew = new Dictionary<string, List< SaleItem>>();
saleItems = new List <SaleItem>();
saleItemNew.Add("1", saleItems);
この時点で、辞書のリストには値があります。以前に割り当てられたリストをクリアするとC#辞書の値がクリアされます。なぜですか?
saleItems.Clear();
私が以前に割り当てられたリストをクリアするときしかし、辞書の値の一覧は空になり...なぜ?
私はリストが同じ方法であると仮定していますか? – Dano
はい、そうです。参照を変更する人は、その参照を使用するすべての人のために参照を変更します。参照は基本的なリストへのポインタ以上のものであると考えてください。 – jjxtra
同じ参照を共有しないリストをたくさん追加したい場合は、新しいリスト()を実行し、新しいリストが必要になるたびに辞書に追加してください。 –
jjxtra