using System.Collections.Generic;
public static void Main()
var url = Combine("https://test.com", "", "firstRealPart", "/secondPart/");
private static string Combine(params string[] parts)
if (parts.Count(x => !string.IsNullOrWhiteSpace(x)) == 1)
return parts.First(x => !string.IsNullOrWhiteSpace(x));
var toCombine = new List<string>();
foreach (var part in parts.Where(x => !string.IsNullOrWhiteSpace(x)))
if (ReferenceEquals(part, parts.First()))
toCombine.Add(part.TrimEnd('/', '\\'));
else if (ReferenceEquals(part, parts.Last()))
toCombine.Add(part.TrimStart('/', '\\'));
toCombine.Add(part.Trim('/', '\\'));
return string.Join('/', toCombine);