Hate to bring up such an old post, but in case it should be useful to those searching the archive: The Math.NET Numerics package (see http://numerics.mathdotnet.com/) has an eigensolver that is relatively easy to call and use. However, I seem to think it was taking a long time on very large sparse matrices (compared to the Octave [Matlab clone] eigensolver on the same matrix). However, for moderate-size dense (or sparse) matrices, it worked just fine. I haven't been able to find C# code that was good for large, sparse matrices. Presumably, such a thing would be a port of ARPACK, but I have had no luck finding a library like that.
All advice is offered in good faith only. You are ultimately responsible for effects of your programs and the integrity of the machines they run on.