С точки зрения эффективности, проблема не в IMO, а в аспекте удобства использования. Лично я думаю, что должна быть перегрузка:
Combine(string first, string second, string third, params string[] others)
Вам нужно иметь как минимум три, чтобы предотвратить конфликт с существующей двухпараметрической версией, если вы просто напишите Path.Combine("foo", "bar")
, но это, безусловно, поможет сделать код более понятным. Почему бы не открыть запрос функции на Connect ?
Конечно, вы можете реализовать это самостоятельно (а в другом классе количество параметров не имеет большого значения):
public static string CombinePaths(string first, params string[] others)
{
// Put error checking in here :)
string path = first;
foreach (string section in others)
{
path = Path.Combine(path, section);
}
return path;
}