Best way to check for upper/lower case query strings
c#, casing, query-string
Solution
Use a dictionary with a case-insensitive key comparer:
var queryParams = new Dictionary<string, string>(
HtmlPage.Document.QueryString,
StringComparer.InvariantCultureIgnoreCase
);
if (queryParams.ContainsKey("territory")) {
// Covers "territory", "Territory", "teRRitory", etc.
}
Problem
I have a problem where I need to extract a query string parameter from a url. The parameter could be either `"Territory"` or `"territory"` or other upper/lower case variations of that word. Although the following works for the first two cases I wonder if there is a better way? ``` IDictionary<string, string> queryString = HtmlPage.Document.QueryString; if (queryString.ContainsKey("territory")) { ish.SetDefaultRegion(int.Parse(queryString["territory"])); // do something (the same something as below) } else if (queryString.ContainsKey("Territory")) { ish.SetDefaultRegion(int.Parse(queryString["Territory"])); // do something (the same something as above) } ``` I would prefer to insert the query string into the dictionary ignoring case (ie. if the user accidentally typed `"TERRITORY"` this code would fail, so how can I just test that the word exists regardless of casing?