To combine multiple Uri in C# and VB.NET you can use the following snippet.
Simple Sample (combining 2 uri)
Sample C#
public string CombineUri(string uri1, string uri2) { if (uri1.Length == 0){return uri2;} if (uri2.Length == 0){return uri1;} uri1 = uri1.TrimEnd('/', '\\'); uri2 = uri2.TrimStart('/', '\\'); return string.Format("{0}/{1}", uri1, uri2); }
Sample VB.NET (autogenerated)
Public Function CombineUri(uri1 As String, uri2 As String) As String If uri1.Length = 0 Then Return uri2 End If If uri2.Length = 0 Then Return uri1 End If uri1 = uri1.TrimEnd("/", "\") uri2 = uri2.TrimStart("/", "\") Return String.Format("{0}/{1}", uri1, uri2) End Function
UPDATE 23.06.2015
Combine multiple Uri
Since this snippet is one of our most read snippets of all time, i decided to upgrade this snippet.
This method now uses params string[] as method parameter which allows much more uri strings to be combine at once.
Sample C#
public string CombineUri(params string[] uriParams) { var retVal = string.Empty; foreach (var uriParam in uriParams) { var tempParam = uriParam.Trim(); if (!String.IsNullOrEmpty(tempParam)) { tempParam = uriParam.TrimEnd('/', '\\'); retVal = !String.IsNullOrEmpty(retVal) ? string.Format("{0}/{1}", retVal, tempParam) : string.Format("{0}", tempParam); } } return retVal; }
Sample VB.NET (autogenerated)
Public Function CombineUri(ParamArray uriParams As String()) As String Dim retVal = String.Empty For Each uriParam As var In uriParams Dim tempParam = uriParam.Trim() If Not [String].IsNullOrEmpty(tempParam) Then tempParam = uriParam.TrimEnd("/"C, "\"C) retVal = If(Not [String].IsNullOrEmpty(retVal), String.Format("{0}/{1}", retVal, tempParam), String.Format("{0}", tempParam)) End If Next Return retVal End Function
For more informations about params see the msdn: params (C# Reference)
RT @CodeSnippetsNET: Combine multiple Uri in .NET http://t.co/KCuwoTPzGr #dotnet #csharp #vb #programming #code #coding #dev