I am doing the following about 10 times with other strings, so the code is duplicated.  How can I refactor this?queryWhere is a Dictionary<string,string> that contains parameters that will be passed to a query. string account = string.Empty;if (queryWhere.ContainsKey(account) && queryWhere[account] != null && !string.IsNullOrEmpty(queryWhere[account].ToString()))    account = queryWhere[account].ToString();string customer = string.Empty;if (queryWhere.ContainsKey(customer ) && queryWhere[customer ] != null && !string.IsNullOrEmpty(queryWhere[customer ].ToString()))    customer = queryWhere[customer ].ToString();string balance = string.Empty;if (queryWhere.ContainsKey(balance ) && queryWhere[balance ] != null && !string.IsNullOrEmpty(queryWhere[balance ].ToString()))    balance = queryWhere[balance].ToString();
Check for null/empty in dictionary
c#;hash table;null
Each of these:string account = string.Empty;if (queryWhere.ContainsKey(account)    && queryWhere[account] != null    && !string.IsNullOrEmpty(queryWhere[account].ToString())){    account = queryWhere[account].ToString();}Should be reduced to:string account;if(!queryWhere.TryGetValue(account, out account)){   account = string.Empty; // if you need the string to be empty // default is null}Dictionary.TryGetValueBut that logic can then be moved to a method:private string GetValue(string key){   string returnValue;   if(!queryWhere.TryGetValue(key, out returnValue))   {      returnValue= string.Empty;   }   return returnValue;}string account = GetValue(account);string customer = GetValue(customer);I really don't see the point of your original code, BTW. For instance, the .ToString() is completely superfluous, since you're working with a Dictionary<string,string>. It is always going to return a string.But why do you even check for string.IsNullOrEmpty()? You already know it isn't null from the previous line's check -- queryWhere[account] != null -- so at worst it is empty which is your default value anyway!