Да кстати, вас еще и запутали, поля значимых типов объекта, хранятся в куче, вместе с другой информацией объекта, метаданными и таблицей виртуальных методов. В стеке хранятся только локальные переменные значимых типов, ссылки на ссылочные типы и аргументы функции.
Да любому понятно, что большие проекты переписывать, сродни самоубийству. Только с вашей уверенностью в невостребованности C# многие не согласятся. Да и присоединюсь к Василию, давайте, докажите вашу уверенность в невостребованности C#, мы же все конструктивную критику нормально воспринимаем, но не слепые высказывания.
Первое, Find возвращает или элемент или значение по умолчанию для типа генерика, т.е. null, да и FileInfo с int сравнивать, синтаксическая ошибка явно. Может вы с FindIndex перепутали?