2010-01-08 21 views
14

Nếu tôi sử dụng như sau:Có Enumerable.Repeat() làm một bản sao sâu?

var myList = Enumerable.Repeat(myCustomObject, 2); 

sẽ là yếu tố thứ hai trong danh sách là một bản sao sâu sắc về người đầu tiên?

Lưu ý: myCustomObject thể được bất kỳ đối tượng

Edit: thể bạn cũng xin vui lòng cho tôi biết việc sử dụng tiềm năng của Enumerable.Repeat khi giao dịch với objets tùy chỉnh?

Cảm ơn

+0

bất kỳ ai cũng có thể cho tôi ví dụ khi Enumerable.Repeat có thể có ích khi xử lý các đối tượng tùy chỉnh? Cảm ơn –

+0

bạn có ý nghĩa gì khi "xử lý các đối tượng tùy chỉnh"? –

+0

Tôi chỉ muốn biết khi nào là Enumerable.Repeat có khả năng hữu ích –

Trả lời

14

Không, Enumerable.Repeat thực sự lặp lại chính xác cùng một tham chiếu trong số đếm được trả về - nó không phải là một bản sao. (được xác minh qua Reflector)

-Oisin

+6

trừ khi đối tượng thuộc loại giá trị ... –

8

Không, Enumerable.Repeat sẽ chỉ lặp lại các tài liệu tham khảo, nó sẽ không tạo một bản sao của đối tượng (trừ khi đó là một kiểu giá trị tất nhiên)