Если вы не хотите, чтобы положить UrlEncode(...)
вокруг каждого аргумента или определить вспомогательную функцию, единственный способ это сделать неявно создается массив явной и применить метод к каждому элементу:
var args = new[] { var1, var2, var3 };
Array.ConvertAll(args, UrlEncode);
var result = string Format("{0}, {1}, {2}", args);
или
var args = new[] { var1, var2, var3 };
var result = string Format("{0}, {1}, {2}", args.Select(UrlEncode).ToArray());
или, если все, что вы хотите сделать, это положить запятые между элементами:
var result = string.Join(", ", new[] { var1, var2, var3 }.Select(UrlEncode));
Использование вспомогательной функции:
var result = string.Format("{0}, {1}, {2}", UrlEncodeAll(var1, var2, var3));
или
var result = string.Join(", ", UrlEncodeAll(var1, var2, var3));
где
string[] UrlEncodeAll(params string[] args)
{
Array.ConvertAll(args, UrlEncode);
return args;
}
Если это не массив, что это? –