使用C#檢查字符串是否爲有效年份的最佳方法是什麼?該值是否爲有效年份C#
我目前有一個包含{'All','2009','2008'}等值的下拉列表,我想知道選擇是日期還是'All'字段。
目前我正在檢查bool isYearValid = (Year.ToLower() == "all") ? false : true;
如何檢查值是否是一個有效的年份,這樣我就不必對「所有」這個硬編碼檢查?
使用C#檢查字符串是否爲有效年份的最佳方法是什麼?該值是否爲有效年份C#
我目前有一個包含{'All','2009','2008'}等值的下拉列表,我想知道選擇是日期還是'All'字段。
目前我正在檢查bool isYearValid = (Year.ToLower() == "all") ? false : true;
如何檢查值是否是一個有效的年份,這樣我就不必對「所有」這個硬編碼檢查?
鑑於一年只需要一個有效的號碼,你可以只使用int32.TryParse,然後簡單地檢查根據您要在今年什麼範圍是在範圍內。
這是不是可以反正更好?
bool isYearValid = !string.Equals(Year, "all", StringComparison.OrdinalIgnoreCase);
您可以使用
DateTime DT
datetime.tryparse(string.format("1/1/{0}",Year),DT)
如何:
<asp:ListItem Value="1900" Text="All" />
這樣,你不必在驗證點手動檢查 「所有」。您仍然需要檢查1900年,當實際執行此操作時,但肯定有現在的方法可以避免一個特殊的場景,無論如何。
除此之外,DateTime.TryParse
是查明字符串表示法是否爲有效日期的正確方法。
您可以嘗試解析年爲一個整數:
int iYear = 0;
if (Int.TryParse(Year, out iYear))
{
//You have a valid year inside iYear
//If you are not sure about the dropdown list values,
//you can of course do more checks for validity. For example:
//if iYear is in a proper range
}
好了,沒有一個人提到這個問題,但爲什麼不能爲符號爲「所有」的地方定義 和使用,在這兩個下拉初始化和比較?
鑑於這是一個硬編碼的'全部'值,他如何檢查案例可能不是很重要;) – Ant
是的,非常真實。 –