Во-первых, они не эквивалентны, в одной версии вы используете int.Parse(x)
, в другой Convert.ToInt32(sTemp)
Кроме того, вы нашли отличный пример того, как сделать что-то более чем одним способом .. В программировании вы найдете это много.
ConvertAll()
Преобразует массив одного типа в массив другого типа.
Select()
Проецирует каждый элемент последовательности в новую форму.
ToArray()
Создает массив из IEnumerable.
Технически, в комбинации они производят одно и то же, но по-разному справляются с этим из-за того, что они являются частью немного разных областей BCL , которые имеют проблемы в немного разных областях.
Лично я не вижу, чтобы ConvertAll
использовал так много в наши дни, поскольку люди очень хорошо знакомы с LINQ и любят объединять методы.
Что касается того, что лучше для производительности, нам пришлось бы написать множество тестов, чтобы выяснить это, и все сводилось бы к скорости распределения по размеру массива для каждой платформы. Тем не менее, я чувствую, что разница будет относительно неразличима изо дня в день, и я предполагаю, что вам будет сложно найти вообще значительную разницу в производительности при любой значительной сигме категорически.
Короче, используйте то, что Вам нравится