आप अपनी क्वेरी स्ट्रिंग मान पार्स करने के लिए एक अच्छा और साफ रास्ता तलाश किया गया है, मैं इस के साथ आ गए हैं:सी # ASP.NET QueryString पार्सर
/// <summary>
/// Parses the query string and returns a valid value.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">The query string key.</param>
/// <param name="value">The value.</param>
protected internal T ParseQueryStringValue<T>(string key, string value)
{
if (!string.IsNullOrEmpty(value))
{
//TODO: Map other common QueryString parameters type ...
if (typeof(T) == typeof(string))
{
return (T)Convert.ChangeType(value, typeof(T));
}
if (typeof(T) == typeof(int))
{
int tempValue;
if (!int.TryParse(value, out tempValue))
{
throw new ApplicationException(string.Format("Invalid QueryString parameter {0}. The value " +
"'{1}' is not a valid {2} type.", key, value, "int"));
}
return (T)Convert.ChangeType(tempValue, typeof(T));
}
if (typeof(T) == typeof(DateTime))
{
DateTime tempValue;
if (!DateTime.TryParse(value, out tempValue))
{
throw new ApplicationException(string.Format("Invalid QueryString parameter {0}. The value " +
"'{1}' is not a valid {2} type.", key, value, "DateTime"));
}
return (T)Convert.ChangeType(tempValue, typeof(T));
}
}
return default(T);
}
मैं हमेशा ऐसा ही कुछ करना चाहते थे है और अंत में यह बेहतर सराहना कर रहे हैं बनाने के लिए मिल गया है यह सही ... कम से कम मुझे ऐसा लगता है ...
कोड आत्म व्याख्यात्मक होना चाहिए ...
कोई टिप्पणी या सुझाव।
हो सकता है कि आप इसे पहले अपने कोड स्टैक से पहले संभाल लें, लेकिन याद रखें कि एक कुंजी में क्वेरीस्ट्रिंग में एकाधिक मान हो सकते हैं, यानी x = 1,2,3 – jro
@jro मैं एकाधिक मान केस को अमान्य मानता हूं क्योंकि जहां तक क्वेरीस्ट्रिंग का केवल एक मान है, "1,2,3" की एक स्ट्रिंग, इसे किसी भी रूप में पार्स करना और बात सही नहीं होगी। ParseExact/TryParseExact के लिए – rtpHarry