I've used Delphi since version 1 and I've used C# for several years now. The ONLY reason I use C# is because it is a requirement of a big project I am working on. And, those requirements were specified for all of the wrong reasons, so far as I'm concerned.
The Delphi and C# languages are reasonably similar (both were designed by the same person). C# has generics, attributes and better handling of interfaces. Delphi (Object Pascal) has much better structure, class referencing, mathematical sets, data modules and so forth. I wish there was one language which had all of the above since all of those things are useful. In the end, you can get the work done with either language, you just have to go about things differently.
However the REAL difference is in the libraries. The Delphi VCL is far more mature and a much better design than NET. I have been continually frustrated by the poor design of some parts of NET. It is a huge and complex system, but it seems like much of it is of little use for real-world projects. On the other hand, it is missing a lot of things which VCL provides and some of what it does provide doesn't work as expected. I find ADO.NET to be particularly bad. There is no equivalent of the Delphi DataModule class, for instance. The "disconnected dataset" concept would be great if it could do all of the things a connected dataset can do, but it can't, and that causes a lot of problems. There is a general lack of useful events, and those which are included often do not work as expected. Data validation is tied to visual controls instead of the data classes. That would be a bad idea in the first place, but it proves to be even worse because there a lot of holes in the logic - it is all too easy for the end user of your program to cause errors which should be avoidable, and you must go to a lot of trouble to prevent them. Finally, the Help system is sub-standard, to say the least. You must do a lot of digging to find what you need. Often, you will only find answers to your questions by accident, if at all.
The one other big consideration, of course, is that technical superiority isn't the whole story. Microsoft is a lot bigger and their products are going to get used whether they are better or not. As I said at the start, I would never use NET if I could avoid it, but the truth is, there are times you cannot avoid it. So, I use Delphi when I can and C# when I must.