Depends on what you are optimzing on.
If you are optimizing on ability to transform C#,
see the C# Front End for a parser that handles C# 1.2, 2.0 and 3.0 (including LINQ syntax). The C# Front End is built on top of DMS Software Reengineering Toolkit which provide parsing, automatic building of ASTs, support for symbol tables, source-to-source program transformation using source-level syntax with patterns, and AST back to source text prettyprinting. If you are looking to transform C# code, this is the tool to do it. (DMS is also used to analyze and transform code in Java, C, C++, JavaScript, COBOL and many other langauges).
If you are optimizing on open source, this isn't the tool you want.