使用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
是的,非常真实。 –