首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是NaN或IsNumeric的C#等价物?

什么是NaN或IsNumeric的C#等价物?
EN

Stack Overflow用户
提问于 2009-01-13 03:32:07
回答 12查看 124.4K关注 0票数 104

测试输入字符串是否包含数值(反之不包含数字)的最有效方法是什么?我想我可以使用Double.Parse或正则表达式(见下文),但我想知道是否有一些内置的方法可以做到这一点,比如javascript的NaN()IsNumeric() (是VB吗,我不记得了?)。

代码语言:javascript
复制
public static bool IsNumeric(this string value)
{
    return Regex.IsMatch(value, "^\\d+$");
}
EN

回答 12

Stack Overflow用户

发布于 2009-01-13 03:38:32

我更喜欢这样的东西,它让你决定测试什么NumberStyle

代码语言:javascript
复制
public static Boolean IsNumeric(String input, NumberStyles numberStyle) {
    Double temp;
    Boolean result = Double.TryParse(input, numberStyle, CultureInfo.CurrentCulture, out temp);
    return result;
}
票数 40
EN

Stack Overflow用户

发布于 2015-06-12 14:32:08

我知道已经有很多不同的方式回答了这个问题,有扩展和lambda示例,但将两者结合起来是最简单的解决方案。

代码语言:javascript
复制
public static bool IsNumeric(this String s)
{
    return s.All(Char.IsDigit);
}

或者,如果您使用的是Visual Studio 2015 (C# 6.0或更高版本),则

代码语言:javascript
复制
public static bool IsNumeric(this String s) => s.All(Char.IsDigit);

很棒的C#6在一行上。当然,这是有限的,因为它只测试数字字符。

要使用,只需有一个字符串并在其上调用方法,例如:

代码语言:javascript
复制
bool IsaNumber = "123456".IsNumeric();
票数 11
EN

Stack Overflow用户

发布于 2009-01-13 03:37:15

是啊,IsNumeric是VB。人们通常使用TryParse()方法,尽管它有点笨拙。正如您所建议的,您可以随时编写自己的代码。

代码语言:javascript
复制
int i;
if (int.TryParse(string, out i))
{

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/437882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档