2009-12-03 14 views
0

使用C#检查字符串是否为有效年份的最佳方法是什么?该值是否为有效年份C#

我目前有一个包含{'All','2009','2008'}等值的下拉列表,我想知道选择是日期还是'All'字段。

目前我正在检查bool isYearValid = (Year.ToLower() == "all") ? false : true;

如何检查值是否是一个有效的年份,这样我就不必对“所有”这个硬编码检查?

回答

6

鉴于一年只需要一个有效的号码,你可以只使用int32.TryParse,然后简单地检查根据您要在今年什么范围是在范围内。

0

这是不是可以反正更好?

bool isYearValid = !string.Equals(Year, "all", StringComparison.OrdinalIgnoreCase); 
+0

鉴于这是一个硬编码的'全部'值,他如何检查案例可能不是很重要;) – Ant

+0

是的,非常真实。 –

1

您可以使用

DateTime DT 
datetime.tryparse(string.format("1/1/{0}",Year),DT) 
0

如何:

<asp:ListItem Value="1900" Text="All" /> 

这样,你不必在验证点手动检查 “所有”。您仍然需要检查1900年,当实际执行此操作时,但肯定有现在的方法可以避免一个特殊的场景,无论如何。

除此之外,DateTime.TryParse是查明字符串表示法是否为有效日期的正确方法。

4

您可以尝试解析年为一个整数:

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 
} 
0

好了,没有一个人提到这个问题,但为什么不能为符号为“所有”的地方定义 和使用,在这两个下拉初始化和比较?