Если вы настроили профилирование кода в Visual Studio, вы можете настроить его для предоставления информации о покрытии кода, которая даст некоторую информацию, которую вы ищете, но это не поможет решить проблему.
Подход, который я выбрал бы, состоял бы в том, чтобы уменьшить количество циклов до управляемого числа (скажем, 10) и пошагово пройти по коду. Если вы знаете, что ожидаете, я обнаружил, что пошаговое выполнение кода и проверка того, что он выполняет операции, ожидаемые для небольшого набора тестов, проясняет любое странное поведение.
По моему опыту, ничто не сравнится с предсказанием того, что сделает компьютер, и проверкой того, что вы оба согласны. Наиболее распространенными причинами будут:
- Ваше состояние меньше, чем равное, а не меньше, чем
- Вы тестируете на один больше, чем ожидаете
- ваш массив на один меньше, чем вы ожидаете
- Вы начинаете считать с 1 и перебираете количество элементов
Off-by-one (последние три) - чуть ли не самая распространенная ошибка в алгоритмах.