Здравствуйте, RustM, Вы писали:
RM>Здравствуйте, Ken Keray, Вы писали:
KK>>Здравствуйте, Codechanger, Вы писали:
C>>>Здравствуйте, Аноним, Вы писали:
KK>>Ничего подобного — ToArray() делает полную копию (Copy) а не просто копию ссылок (Shallow Copy)
RM>А проверить религия не позволяет, прежде чем говорить несуразицу?!
RM>ToArray() именно что копирует ссылки, а не создает новые экземпляры.
RM>
RM>ArrayList list = new ArrayList(new object[] { 1, 2, 3 });
RM>object[] newObj = list.ToArray();
RM>if (Object.ReferenceEquals(newObj[0], list[0]))
RM> Console.WriteLine("Ссылки идентичны");
RM>else
RM> Console.WriteLine("Ссылки не идентичны");
RM>
RM>Как видите сслыки идентичны, даже у Value типов, так как прежде чем попасть в коллекцию ArrayList'а происходит их бокиснг
Виноват!

В самом деле, копия ссылок. Я проверял, однако пример выбрал не правильный:
ArrayList list = new ArrayList(new object[] { 1, 2, 3 });
object[] newObj = list.ToArray();
newObj[0] = 72; // здесь новая ссылка на новый объект
if (Object.ReferenceEquals(newObj[0], list[0]))
Console.WriteLine("Ссылки идентичны");
else
Console.WriteLine("Ссылки не идентичны");
Console.WriteLine(list[0]);
newObj[0] поменялся, а list[0] — нет, вот я и решил, что идёт полная копия