I wrote the following function which used in order to accomplish the required functionality :
        /// <summary>
        /// Get URL With QueryString Dynamically
        /// </summary>
        /// <param name="url">URI With/Without QueryString</param>
        /// <param name="newQueryStringArr">New QueryString To Append</param>
        /// <returns>Return Url + Existing QueryString + New/Modified QueryString</returns>
        public string BuildQueryStringUrl(string url, string[] newQueryStringArr)
        {
            string plainUrl;
            var queryString = string.Empty;
            var newQueryString = string.Join("&", newQueryStringArr);
            if (url.Contains("?"))
            {
                var index = url.IndexOf('?');
                plainUrl = url.Substring(0, index); //URL With No QueryString
                queryString = url.Substring(index + 1);
            }
            else
            {
                plainUrl = url;
            }
            var nvc = HttpUtility.ParseQueryString(queryString);
            var qscoll = HttpUtility.ParseQueryString(newQueryString);
            var queryData = string.Join("&",
                nvc.AllKeys.Where(key => !qscoll.AllKeys.Any(newKey => newKey.Contains(key))).
                    Select(key => string.Format("{0}={1}",
                        HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(nvc[key]))).ToArray());
            //Fetch Existing QueryString Except New QueryString
            var delimiter = nvc.HasKeys() && !string.IsNullOrEmpty(queryData) ? "&" : string.Empty;
            var queryStringToAppend = "?" + newQueryString + delimiter + queryData;
            return plainUrl + queryStringToAppend;
        }        
Function Usage -
Suppose given url is - http://example.com/Test.aspx?foo=bar&id=100
And you want to change foo value to chart and also you want to add new query string say hello = world and testStatus = true then -
Input to Method Call : 
BuildQueryStringUrl("http://example.com/Test.aspx?foo=bar&id=100",
                new[] {"foo=chart", "hello=world", "testStatus=true"});
Output : http://example.com/Test.aspx?foo=chart&hello=world&testStatus=true&id=100
Hope this helps.