Использование метода 2 может привести к неожиданному поведению в вашей программе в зависимости от того, как вы используете список.
Если бы вы сделали что-то вроде:
List<int> myList = new List<int> { 1, 2, 3 };
someObj.listData = myList;
myList = new List<int>(); // clearing the list.
данные в "someObj" по-прежнему будут 1,2,3.
Однако, если вы вместо этого сделали myList.clear (), данные в "someObj" также будут очищены.
Дополнительная мысль, которую я только что имел. Если у вас есть свисающие ссылки на исходный список, и переназначьте переменную, используя new, чтобы очистить ее, GC никогда не очистит эту память. Я бы сказал, что всегда безопаснее использовать метод .clear (), если вам нужно очистить содержимое списка.