Здравствуйте, #John, Вы писали:
S>>В чем неопределенность поведения?
J>Что бы возникло исключение .net framework придется перебрать все ключи одного Dictionary и сравнить с каждым ключем со второго .
J>А это повидение совсем отличается от повидения: "просто создать новый список и скопировать память из двух других."
Понятно что это просто синтаксический сахар, т.е. не ради прироста скорости а ради простоты написания.
И еще. Для словарей это не так уж нужно. А вот для массивов и списков — было бы весьма, так как копировать приходится довольно часто (и здесь то можно было бы применить низкоуровневое копирование):
byte[] prefix = {1, 2, 3};
byte[] body = { 4, 5, 6 };
byte[] suffix = { 7, 8, 9 };
return prefix + body + suffix;
Красота?