public static T SafeConvert<T>(string s) >>{ >> return SafeConvert(s, default(T)); >>}>>
>foreach (KeyValuePair<String, String> kvp in rowValues) > { > String passedValue = kvp.Value.Trim(); > var rowValue = bookingRow[kvp.Key]; > Type columnType = ((DataColumn)bookingRow[kvp.Key]).DataType; > > var passedObject = Convert.ChangeType(passedValue, columnType); > if (passedObject.Equals(rowValue) == false) > { > String rowValueString = rowValue.ToString().Trim(); > if (rowValueString!=passedValue) // Double check to prevent cases of "" vs. " " > this.SaveToBookingHistory(booking_id, "M", kvp.Key, rowValueString, passedValue, ref messageText, ref statusCode); > } > }>
/// <summary> /// Safe convert into desired type /// http://stackoverflow.com/questions/1106974/how-can-i-convert-to-a-specific-type-in-a-generic-version-of-tryparse?rq=1 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="s"></param> /// <param name="defaultValue"></param> /// <returns></returns> public static T SafeConvert<T>(String s, T defaultValue) { if (String.IsNullOrEmpty(s)) return defaultValue; return (T)Convert.ChangeType(s, typeof(T)); } public static T SafeConvert<T>(String s) { return SafeConvert(s, default(T)); }but I don't see how can I apply them for my case.