Если ваши файлы текстовые и не большие, то есть что-то, что можно сказать о простом, очевидном коде. Я бы использовал следующее.
File.ReadAllText("file1") + File.ReadAllText("file2") + File.ReadAllText("file3");
Если ваши файлы представляют собой большие текстовые файлы и вы используете Framework 4.0, вы можете использовать File.ReadLines
, чтобы избежать буферизации всего файла.
File.WriteAllLines("out", new[] { "file1", "file2", "file3" }.SelectMany(File.ReadLines));
Если ваши файлы бинарные, см. Ответ Мехрдада