<p>I have 7-8 xml files. Each one is approximately 50 MB in size. What is the best way to merge files programmatically in C# without getting System.OutOfMemory Exception?  So far I have tried reading each file in a StringBuilder and than putting it in an array of string builder but I still get system.outofmemoery exception. Any help??
Thank you,
-Nimesh</p>

The thing about stringbuilder is you're still trying to keep the entire contents in memory.  You want to only keep a small portion in memory at a time, and that means using filestreams.  Don't read an entire file into memory, open a stream on it and keep reading from the stream.
The problem with xml is that you can't just append them to each other:  you'll break the tag nesting.  So you need to know something about the structure of your xml files so that you can have an idea of what to do at each file boundry.
If you have something that works in theory with StringBuilder, but only fails in practice because of memory constraints, you should be able to translate the StringBuilder's .Append() and .AppendLine() method calls into .Write() and .WriteLine() calls for a filestream.