Is there an UriAgilityPack / UrlAgilityPack?
<p>I'm always trying to figure out some url/uri methodology with asp.net to manipulate a uri/url.</p>

<p>It'd be nice to have:</p>

<pre><code>UriAgilityPack uri = new UriAgilityPack("http://some.com/path?query1=value1");
</code></pre>

<p>or</p>

<pre><code>UriAgilityPack uri = new UriAgilityPack().LoadSiteRelative("~/path?query1=value1");
</code></pre>

<p>Then with</p>

<pre><code>enum Schemes {
  Http,
  Https
}

uri.Scheme = Schemes.Https;
</code></pre>

<p>and/or</p>

<pre><code>foreach(QueryItem item in uri.Query)
   // do something with item
</code></pre>

<p>and/or</p>

<pre><code>uri.Query.Add("AddToCart", 5)
</code></pre>

<p><code>string s = uri.ToString()         // <a href="https://some.com/path?query1=value1&amp;AddToCart=5" rel="nofollow">https://some.com/path?query1=value1&amp;AddToCart=5</a></code></p>

<p>or</p>

<pre><code>string root = uri.RootPath                // /path?query1=value1&amp;AddToCart=5
string relative = uri.RootRelativePath;   // ~/path?query1=value1&amp;AddToCart=5
</code></pre>
