Нет, программа на языке C# не будет так же эффективна, как программа на языке Си, если убрать сборщик мусора. 1
Сборщик мусора оптимизирует работу с памятью, но при этом нагружает ЦПУ. 1 Поэтому C# считается более медленным языком, чем Си, и на нём обычно пишут программы, которые не требуют максимальной оптимизации по времени, но выделяют в ходе своей работы большое количество объектов со слабо предсказуемым временем жизни. 1
С другой стороны, в языках, таких как Си, где нет встроенной сборки мусора, любые созданные переменные хранятся в энергозависимой памяти (RAM, а не на жёстком диске) до тех пор, пока приложение не освободит их или когда приложение не закроется. 2 Это может вызвать серьёзные проблемы на машинах с ограниченной памятью, поскольку выделение памяти для приложения продолжает расти, когда объекты не «утилизируются» на протяжении всего жизненного цикла. 2
Таким образом, выбор между языками зависит от конкретных задач и требований к эффективности программы.