You have two choices. The first is to google for something called, I believe, IBNet. It's an old port to C# of the Java API. It isn't supported anymore though. If you search the IB forums, you'll find areference to it.
Another thing you can do, which you will also find hinted at in the IB forums, is take the Java code, and build it in Visual Studio as a .NET assembly, which you can then call from your C# application. There is also a Java conversion tool you can use to transform the Java code into C# code, which has the advantage of making native CLR calls, but that requires manual changes too, as the conversion tool doesn't do everything for you.
I am currently using the unsupported port, and it works just fine. I suspect it will keep working just fine for a while. Going forward, I am planning on getting the converted code to work. They do not change the API interface all too often, and it shouldn't be too hard to maintain.
In short, it's nothing you can't do, assuming you are a somewhat competent programmer with enough time to fiddle.
Out of curiosity, I am curious if there would be sufficient demand to spend time and make a supported C# API commercially available.